Шаблон проектирования Facade (Фасад)
23-06-2019Время чтения ~ 1 мин.PHP/ООП 8676
Наверное это самый простой паттерн, который используется повсеместно. Задача фасада — скрыть сложную реализацию внутри какого-то класса. То есть если есть 10 классов, у которых нужно выполнить кучу методов, то мы просто делаем один класс-фасад, который их и выполняет. У нас же останется только один «пусковой» метод.
Здесь я не буду приводить код, а сразу дам ссылку на Github. Вы можете сохранить файл или скопировать код и запустить его на своём сервере (PHP 7).
Фасад применяется очень часто, поэтому разобраться с ним не составит труда.
Есть роутинг, где задается выполняемый класс/метод для определенного URL-адреса. То есть команду new
будет выполнять роутинг. Дальше фасад уже сам будет решать какие именно классы подключать и что делать. В случае с концепцией MVC (web-вариант), фасад вообще выполняет роль контролёра. Упрощенно так:
class Controller // (это и есть фасад — его «запускает» роутер) { ... function __construct() { $this->model = new Model(); // подключаем один класс $this->view = new View(); // другой } function run() { $this->model->getData(); $this->view->render(); } }