Фабрика - это класс, предназначенный для создания экземпляров определенных типов.Это ЕДИНСТВЕННАЯ цель фабрики.С другой стороны, фабричный метод может существовать для любого не фабричного типа.Диаграмма фабричного метода пытается выразить это путем добавления произвольного метода (в UML метод называется операцией) к классу, чтобы показать, что его основная цель - не создавать экземпляры некоторых других типов.
Вы ошибаетесь, когда интерпретируете диаграмму, как AnOperation()
вызывает FactoryMethod()
.Диаграмма говорит, что Creator
- это абстрактный тип, который имеет абстрактный метод с именем FactoryMethod
и конкретный (или неабстрактный) метод с именем AnOperation
.ConcreteCreator
происходит от Creator
и наследует AnOperatio()
(что не повторяется в спецификации класса UML, так как оно не является абстрактным) и абстрактный FactoryMethod()
.AnOperatio()
и FactoryMethod()
- два независимых метода.'