@startuml
/' FACTORY METHOD '/
class Creator {
    # factoryMethod()
}
class ConcreteCreator {
    + factoryMethod()
}
interface Product {
    # somethingProduct()
}
class ConcreteProduct
hide empty members
Product <|-- ConcreteProduct
Creator <|-- ConcreteCreator
ConcreteProduct <. ConcreteCreator
note as N1
    Factory Method
    Type: Creational
    Décrit une interface pour créer un objet,
    mais laisse la sous-classe décider.
    L'instanciation est choisie par la sous-classe.
end note
@enduml