Отправляет email-рассылки с помощью сервиса Sendsay

PHP 5: Новые возможности.

  Все выпуски  

Шаблоны проектирования


Вниманию читателей!

Отдельные выпуски рассылки в той или иной мере взаимосвязаны; особенно, это относится к материалам практических занятий.

С предыдущими выпусками Вы можете ознакомиться:

  1. в архиве рассылки (оригиналы выпусков);
  2. на сайте рассылки (исправленные и дополненные версии).

# # #

Вы также можете подписаться на рассылку "PHP 5 для начинающих".

PHP 6 уже в разработке!

Еще в ноябре 2005 года на встрече в Париже разработчики обсудили новые возможности следующей, шестой, версии PHP. Интересует ли Вас, какой будет эта версия? Примите участие в опросе, который проводится на сайте рассылки.

http://pterodactyl.l2p.net/e107/

[опрос на английском языке: PHP 6: Are you interesting in? (PHP 6: Вы зантересованы?) - YES (ДА) - NO (НЕТ)]

PHP 5: Новые возможности.

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

Рассмотрим, как в рамках новой объектной модели PHP 5 могут быть реализованы некоторые шаблоны проектирования.

Шаблон принятия стратегических решений (Strategy pattern) позволяет "на лету" выбрать нужный в данной ситуации алгоритм из множества возможных.

Например, при отправке электронной почты может понадобиться выбирать, в зависимости от тех или мных текущих обстоятельств, между SMTP сервером, системным приложением sendmail и встроенной функцией mail; при создании изображения или генерации ссылки на архивный файл - выбрать его формат (jpg, gif или png для изображений и tar.gz или zip для архива).

PHP 5 позволяет создать абстрактный класс (или интерфейс) с абстрактным методом, который бы реализовывал конкретный механизм; а на его основе - серию классов-наследников, по одному для каждого возможного решения (Пример 1, «Strategy Pattern»).

Шаблон производства объекта (Factory Pattern) позволяет создавать объект того или иного класса "на лету". Будучи использованным вместе с шаблоном принятия стратегического решения («Шаблон-стратег»), позволяет выбрать подходящий в данной ситуации класс создаваемого объекта.

В PHP 5 для реализации данного шаблона может быть использован статический метод (например, factory), возвращающий вновь созданный объект нужного класса (Пример 2, «Factory Pattern») в зависимости от полученных аргументов.

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

Реализация данного шаблона при помощи PHP 5 потребует определения статического метода (например, singleton), возвращающего единственный экземпляр данного класса; статической переменной класса, служащей своего рода флагом; а также предотвращения случайного создания дополнительных экземпляров класса путем прямого использования оператора new или клонирования объекта, что достигается объявлением конструктора класса и магического метода __clone приватными.

Created with DocBook Created with Libxslt


В избранное