Шаблон Command. Проблема

Опубликовал read-php в 02.09.2012 Категория: Выполнение задач и представление результатов в PHP

В последние годы я редко завершал веб-проект без использования этого шаблона. Первоначально рассматриваемые в контексте проекта графического пользовательского интерфейса, командные объекты способствуют созданию проекта хорошего корпоративного приложения, поддерживают разделение между уровнями контроллера (обработка запросов и диспетчеризации) и моделью предметной области (логика приложения). Проще говоря, шаблон Command помогает создавать хорошо организованные системы, которые легко расширять. (далее…)

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

Реализация шаблона Command

Опубликовал read-php в 28.08.2012 Категория: Выполнение задач и представление результатов в PHP

Интерфейс для командного объекта вряд ли может быть еще проще! Он требует реализовать только один метод — execute ( ).

На рис.  я представил класс command в виде абстрактного класса. На этом уровне простоты его можно было бы определить как интерфейс. Но я склонен использовать абстрактный класс в данном случае, потому что базовый класс также может предоставить полезные общие функции для своих производных объектов. (далее…)

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

Шаблон Singleton. Проблема

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

Обычно в хорошо спроектированных системах экземпляры объектов передаются в виде параметров при вызове методов. При этом каждый класс сохраняет свою независимость от более широкого контекста и взаимодействует с другими частями системы через очевидные каналы коммуникации. Но иногда вы обнаружите, что это заставляет вас использовать некоторые классы как каналы передачи информации для объектов, которые не имеют к ним отношения, создавая зависимости во имя хорошего стиля проектирования. (далее…)

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

Шаблон Abstract Factory. Выводы

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

Так что дает нам шаблон Abstract Factory?

  • Во-первых, мы отделили нашу систему от деталей реализации. Мы можем добавлять или удалять любое количество кодирующих форматов в нашем примере, не опасаясь каких-либо проблем.
  • Во-вторых, мы ввели в действие группировку функционально связанных элементов нашей системы. Поэтому при использовании BloggsCommsManager есть гарантия, что мы будем работать только с классами, связанными с BloggsCal. (далее…)
Комментариев нет

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

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

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

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