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


Шаблон «Фабричный метод» (Factory Method)



бет3/15
Дата01.10.2022
өлшемі254,47 Kb.
#41019
1   2   3   4   5   6   7   8   9   ...   15
Шаблон «Фабричный метод» (Factory Method). В данном шаблоне вводится полиморфный класс Factory, в котором определяется интерфейс фабричного метода, подобного CreateWarrior( ), а ответственность за создание объектов конкретных классов переносится на производные от Factory классы, в которых этот метод переопределяется;

  • Шаблон «Абстрактная фабрика» (Abstract Factory). Использует несколько фабричных методов и предназначен для создания целого семейства или группы взаимосвязанных объектов. Для приведённого выше примера, шаблон может предоставлять методы для создания всех типов воинов;

  • Шаблон «Строитель» (Builder). Определяет процесс поэтапного конструирования сложного объекта, в результате которого могут получаться разные представления этого объекта;

  • Шаблон «Прототип» (Prototype). Создаёт новые объекты с помощью прототипов (создавая копии самого себя);

  • Шаблон «Синглетон» (Singleton). Позволяет создавать только один экземпляр класса.

    Шаблон «Фабричный метод»


    В системе часто требуется создавать объекты самых разных типов. Шаблон «Фабричный метод» (Factory Method) может быть полезным в решении следующих задач:

    • Система должна оставаться расширяемой путем добавления объектов новых типов. Непосредственное использование выражения «new» является нежелательным, так как в этом случае код создания объектов с указанием конкретных типов может получиться разбросанным по всему приложению. Тогда такие операции как добавление в систему объектов новых типов или замена объектов одного типа на другой будут затруднительными. Шаблон «Фабричный метод» позволяет системе оставаться независимой как от самого процесса порождения объектов, так и от их типов;

    • Заранее известно, когда нужно создавать объект, но неизвестен его тип.

    Для того, чтобы система оставалась независимой от различных типов объектов, Шаблон «Фабричный метод» использует механизм полиморфизма - классы всех конечных типов наследуются от одного абстрактного базового класса, предназначенного для полиморфного использования. В этом базовом классе определяется единый интерфейс, через который пользователь будет оперировать объектами конечных типов.
    Для обеспечения относительно простого добавления в систему новых типов Шаблон «Фабричный метод» локализует создание объектов конкретных типов в специальном классе-фабрике. Методы этого класса, посредством которых создаются объекты конкретных классов, называются фабричными. Существуют две разновидности Шаблон «Фабричный метод»:


    Достарыңызбен бөлісу:
  • 1   2   3   4   5   6   7   8   9   ...   15




    ©emirsaba.org 2024
    әкімшілігінің қараңыз

        Басты бет