Подробнее на 👉 refactoring.guru
#include <iostream>
// Сложная подсистема
class Engine {
public:
void setEngine() { std::cout << "Устанавливаем двигатель" << std::endl; }
};
class Body {
public:
void setBody() { std::cout << "Устанавливаем кузов" << std::endl; }
};
class Interior {
public:
void setInterior() { std::cout << "Устанавливаем интерьер" << std::endl; }
};
// Фасад, предоставляющий простой интерфейс для сложной подсистемы
class CarFacade {
private:
Engine engine;
Body body;
Interior interior;
public:
void buildCar() {
engine.setEngine();
body.setBody();
interior.setInterior();
std::cout << "Автомобиль построен" << std::endl;
}
};
int main() {
CarFacade carFacade;
carFacade.buildCar();
return 0;
}
Будет напечатано:
Устанавливаем двигатель Устанавливаем кузов Устанавливаем интерьер Автомобиль построен
// Сложная подсистема
class Engine {
void setEngine() {
print('Устанавливаем двигатель');
}
}
class Body {
void setBody() {
print('Устанавливаем кузов');
}
}
class Interior {
void setInterior() {
print('Устанавливаем интерьер');
}
}
// Фасад, предоставляющий простой интерфейс для сложной подсистемы
class CarFacade {
Engine _engine = Engine();
Body _body = Body();
Interior _interior = Interior();
void buildCar() {
_engine.setEngine();
_body.setBody();
_interior.setInterior();
print('Автомобиль построен');
}
}
void main() {
CarFacade carFacade = CarFacade();
carFacade.buildCar();
}
Будет напечатано:
Устанавливаем двигатель Устанавливаем кузов Устанавливаем интерьер Автомобиль построен