Опубликован: 12.10.2017 | Уровень: для всех | Доступ: платный
Лекция 7:

Порождающие шаблоны проектирования

< Лекция 6 || Лекция 7: 123 || Лекция 8 >

Фабричный метод

В условиях, когда необходимо определить интерфейс для создания конкретного объекта, но требуется делегировать системным подклассам решение о том, какой класс нужно инстанциировать, используется шаблон "Фабричный метод".

Алгоритм реализации этого паттерна выглядит следующим образом:

  1. Необходимо унифицировать интерфейсы всех создаваемых объектов.
  2. В классе, который производит продукты, создайте пустой "Фабричный метод".
    • В качестве возвращаемого типа укажите общий интерфейс продукта.
  3. Затем найдите все участки приложения, в которых инициируется создание требуемых объектов.
    • Поочередно заменяйте эти участки вызовами "Фабричного метода", а сам код перемещайте в "Фабричный метод".
  4. Переопределите "Фабричный метод" в подклассах, перемещая туда создание соответствующих продуктов.
  5. Если создаваемых продуктов слишком много,целесообразно задуматься о введении параметров в "Фабричный метод", которые позволят возвращать различные продукты в пределах одного подкласса.

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

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

Выводы

Эта лекция является предпоследней лекцией данной книги и последней главой, в которой обсуждаются шаблоны проектирования.Данная работа выстроена в соответствии со справочной структурой, в которой описаны шаблоны проектирования информационных систем. Материал, используемый и излагаемый в этой книге, сформирован на основе исследований, обобщения и реструктурирования материала наиболее известных, значимых и признанных данных в этой области информационных технологий.

Описания шаблонов проектирования структурированы таким образом, чтобы обеспечить максимальное удобство в их освоении и использовании. Для этой цели выделены пять групп шаблонов проектирования.Каждая из этих групп описывает паттерны для решения задач определенного уровня– от архитектурных задач до задач порождения информационных объектов внутри конкретной информационной системы.

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

< Лекция 6 || Лекция 7: 123 || Лекция 8 >
Канагат Дюсекеев
Канагат Дюсекеев
Казахстан, Караганды, Карагандинский экономический университет, 2009
Алексей Мохов
Алексей Мохов
Россия, г. Самара