Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            Factory[] factories = new Factory[2];
            factories[0] = new ConcreteFactoryA();
            factories[1] = new ConcreteFactoryB();

            foreach (Factory item in factories)
            {
                Product product = item.CreateProduct();
                Console.WriteLine("Created {0}", product.GetType().Name);
            }

            //练习
            // 定义一个鸡腿工厂
            IKFCFactory factory = new ChickenFactory();
            // 生产鸡腿
            KFCFood food1 = factory.CreateFood();

            food1.Display();
            // 生产鸡腿
            KFCFood food2 = factory.CreateFood();

            food2.Display();
            // 生产鸡腿
            KFCFood food3 = factory.CreateFood();

            food3.Display();

            Console.ReadKey();
        }
Ejemplo n.º 2
0
        public void TestMethodAbstractFactory()
        {
            IAbstractFactory factoryA = new ConcreteFactoryA();
            IAbstractFactory factoryB = new ConcreteFactoryB();

            var clientA = new Client(factoryA);
            var clientB = new Client(factoryB);
        }
        public void TestAbstractFactory()
        {
            IAbstractFactory factory = new ConcreteFactoryA();

            var productA1 = factory.CreateProductA();
            var productB1 = factory.CreateProductB();

            Assert.AreEqual(productA1.GetType(), typeof(ProductA1));
            Assert.AreEqual(productB1.GetType(), typeof(ProductB1));

            factory = new ConcreteFactoryB();

            var productA2 = factory.CreateProductA();
            var productB2 = factory.CreateProductB();

            Assert.AreEqual(productA2.GetType(), typeof(ProductA2));
            Assert.AreEqual(productB2.GetType(), typeof(ProductB2));
        }
        public void AbstractFactory_CheckCorrectInstances()
        {
            var factoryA = new ConcreteFactoryA();
            var _clientA = new Client(factoryA);

            var factoryB = new ConcreteFactoryB();
            var _clientB = new Client(factoryB);

            var prodA1 = _clientA.ProductA;
            var prodB1 = _clientA.ProductB;

            var prodA2 = _clientB.ProductA;
            var prodB2 = _clientB.ProductB;

            Assert.IsTrue((prodA1 as ConcreteProductA1) != null, "prodA1 incorrecto");
            Assert.IsTrue((prodB1 as ConcreteProductB1) != null, "prodA1 incorrecto");
            Assert.IsTrue((prodA2 as ConcreteProductA2) != null, "prodA1 incorrecto");
            Assert.IsTrue((prodB2 as ConcreteProductB2) != null, "prodA1 incorrecto");
        }
Ejemplo n.º 5
0
        public void DALAbstractFactoryTest()
        {
            //arrange
            IAbstractFactory factoryA = new ConcreteFactoryA();
            IAbstractFactory factoryB = new ConcreteFactoryB();
            var expectedResult1       = "fAmA";
            var expectedResult2       = "fAmB";
            var expectedResult3       = "fBmA";
            var expectedResult4       = "fBmB";

            //act
            var result1 = factoryA.CreateObjectA().MethodA();
            var result2 = factoryA.CreateObjectB().MethodB();
            var result3 = factoryB.CreateObjectA().MethodA();
            var result4 = factoryB.CreateObjectB().MethodB();

            //assert
            Assert.AreEqual(expectedResult1, result1);
            Assert.AreEqual(expectedResult2, result2);
            Assert.AreEqual(expectedResult3, result3);
            Assert.AreEqual(expectedResult4, result4);
        }