Реализация шаблона Domain Object Factory

Опубликовал read-php в 12.04.2011 Категория: Шаблоны баз данных PHP

Представьте себе набор классов Mapper, явно организованный так, что каждый обращен к своему объекту приложения. Шаблон Domain Object Factory просто требует, чтобы вы извлекали метод createObj ect () из каждого Mapper и помещали его в собственный класс в параллельной иерархии. Эти новые классы показаны на рисунке ниже

Scr06 Реализация шаблона Domain Object Factory

У классов Domain Object Factory есть только одна основная обязанность, поэтому они обычно очень просты.

abstract class woo_mapper_DomainObjectFactory {

abstract function createObject( array $array );

}

Вот конкретная реализация.

class woo_mapper_VenueObjectFactory extends woo_mapper_DomainObjectFactory {

function createObject( array $array ) {

$obj = new woo_domain_Venue( $array['id'] );

$obj->setname( $array['name'] );

return $obj;

}

}
Конечно, чтобы не допустить дублирования и предотвратить ненужные обращения к базе данных, вы должны кешировать объекты, как это делал я с классом Mapper. Вы можете переместить сюда методы addToMap () и getFromMap () или создать связь по типу наблюдателя между ObjectWatcher и методами createObject (). Детали я оставляю вам. Только помните: не допускайте создания клонов объектов приложения, поскольку это сделает систему неуправляемой!

P.S. Вот и наступило прекрасное лето. Самое время поехать на море, позагорать. Но не стоит забывать и о жилье. Хотите снять квартиру посуточно? В этом вам поможет сайт rieltor.ua

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