Шаблон Abstract Factory. Реализация

Опубликовал read-php в 06.06.2012 Категория: Генерация объектов ООП

В абстрактном классе CommsManager определяется интерфейс для генерации каждого из трех продуктов (объекты типа ApptEncoder, TtdEncoder и ContactEncoder). Поэтому нам нужно реализовать конкретный объект создателя, чтобы можно было генерировать конкретные объекты продуктов для определенного семейства. Как это можно сделать для формата BloggsCal, показано на рис. ниже.
Программирование PHP 06 Шаблон Abstract Factory. Реализация

Вот вариант кода для CommsManager и BloggsCommsManager.

abstract class CommsManager {

abstract function getHeaderText();

abstract function getApptEncoderО;

abstract function getTtdEncoder();

abstract function getContactEncoder();

abstract function getFooterText0;

}

class BloggsCommsManager extends CommsManager {

function getHeaderTextО {

return «BloggsCal верхний колонтитул\n»;

}

function getApptEncoder() {

return new BloggsApptEncoder();

}

function getTtdEncoder() {

return new BloggsTtdEncoderО;

}

function getContactEncoder() {

return new BloggsContactEncoder();

}

function getFooterText() {

return «BloggsCal нижний колонтитул\n»;

}

}

Обратите внимание на то, что в этом примере мы используем шаблон Factory Method. Метод getContactEncoder () объявлен абстрактным в классе CommsManager и реализован в классе BloggsCommsManager. В результате шаблоны проектирования работают совместно, причем один шаблон создает контекст, который служит для другого.

P.S. Последним временем ваш интернет не радует своей быстрой работой? В таком случае вам стоить провести тест скорости интернета и в случае необходимости обратится к провайдеру с просьбой решения данной ситуации.

Комментариев нет

Добавить комментарий