design-patterns

Quick-reference guide to software design patterns with concise Dart examples.

View project on GitHub

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