Provides a simplified interface to a complex subsystem.
Hides the complexity behind a single, easy-to-use class.
class CPU {
void freeze() => print('CPU frozen');
void execute() => print('CPU executing');
}
class Memory {
void load(String data) => print('Memory loaded: $data');
}
class Display {
void show() => print('Display on');
}
class ComputerFacade {
final _cpu = CPU();
final _memory = Memory();
final _display = Display();
void start() {
_cpu.freeze();
_memory.load('OS');
_cpu.execute();
_display.show();
}
}
// Usage
ComputerFacade().start(); // one call boots everything