abstract_factory.txt 765 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. @startuml
  2. /' ABSTRACT FACTORY '/
  3. class Client
  4. interface AbstractFactory {
  5. # createProductA()
  6. # createProductB()
  7. }
  8. class ConcreteFactory {
  9. + createProductA()
  10. + createProductB()
  11. }
  12. interface AbstractProduct {
  13. # somethingProduct()
  14. }
  15. class ProductA {
  16. + somethingProduct()
  17. }
  18. class ProductB {
  19. + somethingProduct()
  20. }
  21. hide empty members
  22. AbstractFactory <|-- ConcreteFactory
  23. AbstractProduct <|-- ProductA
  24. AbstractProduct <|-- ProductB
  25. Client --> AbstractFactory
  26. Client --> AbstractProduct
  27. note as N1
  28. <b><color:royalBlue>Abstract Factory</color></b>
  29. <b>Type:</b> Creational
  30. Permet la création d'objets qui
  31. sont liés à des classes connues
  32. et assocées sans avoir à le préciser
  33. dans leur classe concrète
  34. end note
  35. @enduml