Сайт вебмастера

Шаблон проектирования Facade (Фасад)

23-06-2019Reading time ~ 1 min.PHP/ООП 8671

Наверное это самый простой паттерн, который используется повсеместно. Задача фасада — скрыть сложную реализацию внутри какого-то класса. То есть если есть 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();
   }
}
Related Posts