Примечание. Вопросы находятся в конце сообщения.
Я прочитал другие потоки stackoverflow, касающиеся Аннотация Factory vs Factory Метод. Я понимаю намерение каждого шаблона. Однако я не совсем понимаю это определение.
Factory Метод определяет интерфейс для создания объекта, но позволяет подклассы определяют, какие из них экземпляр. Метод Factory позволяет классы переносят подклассы.
В отличие от этого, Abstract Factoryпредоставляет интерфейс для создания семей связанных или зависимых объектов без указания их конкретные классы.
Аннотация Factory выглядит очень похоже на Factory Метод. Я нарисовал несколько классов UML, чтобы проиллюстрировать мою точку зрения.
Примечание:
- Диаграмма находится на сайте www.yuml.com, поэтому они не идеально ориентированы. Но это бесплатная услуга:).
- Диаграммы могут быть не идеальными. Я все еще изучаю шаблоны дизайна GoF.
Factory Метод:
Аннотация Factory (только 1 участник):
Аннотация Factory (больше участников):
Вопросы:
- Если Аннотация Factory имеет только один создатель и один продукт, является ли он еще Аннотация Factory шаблоном? (интерфейс для создания семей)
- Может ли созданный Factory метод конкретный создатель создать из интерфейса или он должен быть из класса? (классы переносят экземпляры в подклассы)
- Если в тесте Factory может быть только один создатель и один продукт, это единственное отличие между Аннотация Factory и Factory, что создателем для первого является интерфейс, а создателем для последнего является класс?