Simple Factory

Factory Method

UML Code (PlantUML)

Product <|-- ConcreteProduct
Creator <|-- ConcreteCreator
ConcreteCreator ..> ConcreteProduct

class Creator {
  {abstract} fabricmethod()

class ConcreteCreator {

  • No new operator is called by calling classes → better to exchange implementation later
  • Better name for virtual constructor
  • Creation of sub classes
  • Add. class which contains class method for creation necessary

Abstract Factory