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



Pdf көрінісі
бет6/15
Дата16.10.2022
өлшемі0,66 Mb.
#43481
1   2   3   4   5   6   7   8   9   ...   15
Байланысты:
Creational Patterns

Достоинства и недостатки 
Достоинства: 
• Создает объекты разных типов, позволяя системе оставаться независимой как от самого 
процесса создания, так и от типов создаваемых объектов. 
Недостатки: 
• В случае классического варианта паттерна даже для порождения единственного объекта 
необходимо создавать соответствующую фабрику 
Шаблон «Абстрактная фабрика» 
Данный шаблон позволяет изменять поведение системы, оперируя создаваемыми объектами, 
при этом сохраняя интерфейсы. Он позволяет создавать целые группы взаимосвязанных 
объектов, которые, будучи созданными одной фабрикой, реализуют общее поведение. Шаблон 
реализуется созданием абстрактного класса Factory, который представляет собой интерфейс для 
создания компонентов системы (например, для оконного интерфейса он может создавать окна и 
кнопки). Затем пишутся классы, реализующие этот интерфейс. 
Данный шаблон рекомендуется использовать в следующих случаях: 


• Система должна оставаться независимой как от процесса создания новых объектов, так 
и от типов порождаемых объектов. Непосредственное использование выражения new в 
коде приложения; 
• Необходимо создавать группы или семейства взаимосвязанных объектов, исключая 
возможность одновременного использования объектов из разных семейств в одном 
контексте. 
Для решения задачи по созданию семейств взаимосвязанных объектов шаблон «Абстрактная 
фабрика» вводит понятие абстрактной фабрики. Абстрактная фабрика представляет собой 
некоторый полиморфный базовый класс, назначением которого является объявление 
интерфейсов фабричных методов, служащих для создания продуктов всех основных типов (один 
фабричный метод на каждый тип продукта). Производные от него классы, реализующие эти 
интерфейсы, предназначены для создания продуктов всех типов внутри семейства или группы. 
Обобщённая диаграмма классов выглядит следующим образом: 
CarthaginianHorseman 
Input


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




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

    Басты бет