Академический Документы
Профессиональный Документы
Культура Документы
Урок 4.
Порождающие шаблоны
На уроке разберём
$advertisement = $this->getAdvertisement()->build($this->parameters);
echo 'Бизнес-логика';
}
Описание фабричных методов
protected function getAdvertisement(): IAdvertisement
{
return new BannerBuilder();
}
}
● Улучшается тестируемость.
}
echo 'Переводим спец. символы в html мнемоники'; Хотим: создавать
представления
abstract public function render(): string;
} Статей, не указывая
class HtmlArticle extends AbstractArticle их явно.
{
public function render(): string { echo 'Выводим статью в html'; }
}
class Article
{
public function createPage(AbstractFactory $abstractFactory)
{
$article = $abstractFactory->createArticle();
$article->quoteSpechialChars();
$article->render();
$newsFeed = $abstractFactory->createNewsFeed();
$newsFeed->getLastNews(10);
$newsFeed->showAsBanner();
$newsFeed->render();
}
}
Когда стоит применять
Отделяет конструирование
сложного объекта от его
представления. В результате
одного и того же процесса
конструирования могут получаться
разные представления.
UML-диаграмма
Основная цель Строителя
$order = $orderBuilder>build();
}
Когда стоит применять
return static::$instance;
}
// Создание Одиночки
Singleton::getInstance();
Когда стоит применять