@startuml AbstractProduct <. AbstractCreator AbstractProduct <|-- ConcreteProduct AbstractCreator <|-- ConcreteCreator ConcreteProduct <. ConcreteCreator interface AbstractProduct interface AbstractCreator { {abstract} +Create() : AbstractProduct* +OtherMethod() } class ConcreteCreator { +Create() : ConcreteProduct* } hide empty attributes hide empty methods @enduml