┌───────────────────┠│ Fabrique │ ├───────────────────┤ │+createAbstractAB()│ └───────────────────┘ createAbstractAB: { return new A(); } <<interface>> ┌────────────┠│ AbstractAB │ ├────────────┤ │ +… │ │ +… │ │ +… │ └────────────┘ ^ ^ / \ / \ / \ / \ / \ ┌────────────┠┌────────────┠│ A │ │ B │ ├────────────┤ ├────────────┤ │ │ │ │ │ │ │ │ │ │ │ │ └────────────┘ └────────────┘