public ConcreteFactoryKit2(
     AbstractOrInterfaceOfProductA prototypeOfProductA,
     AbstractOrInterfaceOfProductB prototypeOfProductB)
 {
     _prototypeOfProductA = prototypeOfProductA;
     _prototypeOfProductB = prototypeOfProductB;
 }
        public void TestCase2()
        {
            AbstractOrInterfaceOfFactoryKit kit1      = new ConcreteFactoryKit1();
            AbstractOrInterfaceOfProductA   productA1 = kit1.CreateProductA();
            AbstractOrInterfaceOfProductB   productB1 = kit1.CreateProductB();

            AbstractOrInterfaceOfFactoryKit kit2      = new ConcreteFactoryKit2(productA1, productB1);
            AbstractOrInterfaceOfProductA   productA2 = kit2.CreateProductA();
            AbstractOrInterfaceOfProductB   productB2 = kit2.CreateProductB();
        }