The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

PHP. Объекты, шаблоны и методики программирования

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by 9229696521, 2018-03-28 08:15:50

PHP. Объекты, шаблоны и методики программирования

PHP. Объекты, шаблоны и методики программирования

366 Часть 111. Шаблоны

понентами логичны и явно определены, мне часто бывает трудно составлять паке­
ты, содержащие десятки компонентов с похожими названиями.

Ситуация сначала ухудшится, а затем - улучшится. Я уже вижу еще одно про­
блемное направление в Data Mapper. Метод Mapper : : getCo l l e c t ion ( ) был удобным,
но, опять-таки, другим классам может понадобиться получить объект C o l l ection
для определенного типа приложения, не используя класс, обращенный к базе
данных. Итак. у нас есть два связанных абстрактных компонента: Collect ion и
Domai n Obj e c t Factory. В соответствии с объектом приложения, с которым мы рабо­
таем, мы будем требовать другой набор конкретных реализаций, например Venue
C o l l e c t i o n и Venue Doma inOb j e ctFactory или SpaceCo l l ec t i o n и SpaceDoma i nObj ect
Fa ctory. Конечно, эта проблема приводит нас непосредственно к шаблону Abstract
Factory. На рис. 1 3.8 показан класс Pe r s i s tenceFactory. Я буду использовать его для
организации различных компонентов, из которых состоят несколько следующих
шаблонов .

Persiste nc eFactory

+getCollection(raw:array): Collection
+getDo8ainOЬjectFactory() : Do8ainO/ljectFactory
+getFactor�(t�eestr : string)


11
- SpacePersistenceFactory VenuePersistenceFactory
-

+getCollection(raw: array) : Collection +getCollection(raw: array ) : Collection
+getDomainObjectFactory( ) : DomainObjectFactory +getDomainObjectFactory( ) : DomainObjectFactory

1Dom ainObjectFactory

� _ _ _ _ _ :;:.. SpaceDomainObjectFactory 1

VenueDomainObjectFactory <- - - - - -11

Collection

1 1
1
:.э--L - - - - - - - - - - - SpaceCollection
VenueCollection <- - - - - - - - - - - - J

Рис. 1 3.8. Использование шаблона Abstract Factory для организации связанных компонентов

Шаблон ldentity Object

Реализация Mapp e r , которую я здесь представил, отличается недостаточной
гибкостью, когда речь идет о нахождении объектов приложения. Найти отдель­
ный объект - это не проблема. Найти все подходящие объекты приложения так
же просто. Но если нужно сделать что-то среднее между этими задачами, то тре-




































































Click to View FlipBook Version