На вікіпедії про нього нормально написано.
Можу привести один простий зрозумілий приклад на словах.
Візьмемо комп'ютер. Нам потрібно реалізувати такі класи:
CPU, Memory, HardDrive та інші. Це все буде підсистемами.
Фасадом буде клас Computer, який наприклад буде виконувати метод executeTask()
Трохи коду:
#include <iostream>
using namespace std;
class CPU {
public:
int execute(int command, int data) {}
};
class Memory {
public:
int readData(int from) {}
void saveData(int to) {}
};
class HardDrive {
public:
int readData(int from) {}
void saveData(int to, int data) {}
};
class Computer {
private:
CPU cpu;
Memory mem;
HardDrive hd;
public:
void task1() {
int data = mem.readData(1);
data = cpu.execute(1, data);
data = cpu.execute(2, data);
hd.saveData(1, data);
}
};
int main() {
Computer pc;
pc.task1();
return 0;
}