┌───────────────────┐
│     Fabrique      │
├───────────────────┤
│+createAbstractAB()│
└───────────────────┘

createAbstractAB:
{
    return new A();
}

                          <<interface>>
                          ┌────────────┐
                          │ AbstractAB │
                          ├────────────┤
                          │ +…         │
                          │ +…         │
                          │ +…         │
                          └────────────┘
                          ^            ^
                         /              \
                        /                \
                       /                  \
                      /                    \
                     /                      \
              ┌────────────┐          ┌────────────┐
              │      A     │          │      B     │
              ├────────────┤          ├────────────┤
              │            │          │            │
              │            │          │            │
              │            │          │            │
              └────────────┘          └────────────┘