Шаблон проектирования Facade (Фасад)
23-06-2019Время чтения ~ 1 мин.PHP/ООП 9536
Наверное это самый простой паттерн, который используется повсеместно. Задача фасада — скрыть сложную реализацию внутри какого-то класса. То есть если есть 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();
}
}