This is widely used in embedded systems to simplify hardware initialization and subsystem control.
- Simplifies complex subsystems
- Reduces dependencies
C Example
#include <stdio.h>
void initGPIO() { printf("GPIO init\n"); }
void initUART() { printf("UART init\n"); }
void initSPI() { printf("SPI init\n"); }
void systemInit() {
initGPIO();
initUART();
initSPI();
}
int main() {
systemInit();
}
C++ Example
#include <iostream>
using namespace std;
class GPIO { public: void init(){ cout<<"GPIO\n"; } };
class UART { public: void init(){ cout<<"UART\n"; } };
class SPI { public: void init(){ cout<<"SPI\n"; } };
class BoardFacade {
GPIO gpio;
UART uart;
SPI spi;
public:
void init() {
gpio.init();
uart.init();
spi.init();
}
};
int main() {
BoardFacade board;
board.init();
}