(interface)AbstractFactory
(interface)DomeProductA
(class)Clien
(class)PrdoctA1(implements)DomeProductA
(class)PrdoctB2(implements)DomeProductB
(class)PrdoctA2(implements)DomeProductA
(class)PrdoctB1(implements)DomeProductB
Clien::main()
(class)ConcreteFactory1newPrdoctB1/PrdoctB2
(class)ConcreteFactory1newPrdoctA1/PrdoctA2
(interface)DomeProductB