<<interface>>AbstractFactory
+productA():ProductA+productB():ProductB
ProductB1
+operation1():void+operation2():void
Factory2
Factory1
<<interface>>ProductA
ProductB2
ProductA2
<<interface>>ProductB
Client
ProductA1