Результаты Selection Factory и Update Factory

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

Использование общей реализации Identity Object упрощает применение класса SelectionFactory с единственным параметром. Если вы предпочитаете жестко закодированные Identity Object — Identity Object, которые состоят из списка методов-получателей и методов-установщиков, — то, скорее всего, вам придется создавать по одному SelectionFactory на объект приложения.

Одно из огромных преимуществ объектов Query Factory вместе с Identity Object— диапазон запросов, которые можно генерировать. Но это может также вызвать проблемы при кешировании. Данные методы генерируют запросы «на лету», и трудно узнать, не происходит ли дублирование. Возможно, имеет смысл создать средство сравнения объектов Identity Object, чтобы можно было вернуть кешированную строку, не выполняя всей этой работы. Аналогичный вид объединения операторов базы данных можно рассмотреть также на более высоком уровне.

Еще один вопрос комбинации шаблонов, который рассматривался в этой главе, — то, что они гибкие, но не настолько гибкие. Я имею в виду, что они в высшей степени должны обладать способностью приспосабливаться, но в определенных пределах. И остается мало возможностей для исключительных случаев. Классы Mapper, которые труднее создавать и поддерживать, очень легко приспосабливаются к любым ошибкам в работе программы или операциям с данными, которые может понадобиться выполнять за их аккуратными API. Эти более изящные шаблоны страдают от того, что при их сфокусированных обязанностях и акценте на композицию может быть трудно пойти наперекор разуму и сделать что-то тупое, но эффективное.

К счастью, мы не потеряли интерфейс более высокого уровня — у нас еще есть уровень контроллера, где мы можем показать свое мастерство, если потребуется.

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