static void Main()
        {
            var client = new ClientCore();

            Console.WriteLine("");
            Console.WriteLine("Utilizando a Factory 1:");

            var factory1 = new ConcreteFactory1();

            client.Run(factory1);

            Console.WriteLine("");
            Console.WriteLine("Utilizando a Factory 2:");

            var factory2 = new ConcreteFactory2();

            client.Run(factory2);

            Console.WriteLine("");
            Console.WriteLine("Utilizando a Factory 3:");

            var factory3 = new ConcreteFactory3();

            client.Run(factory3);
        }
예제 #2
0
    public static void Main()
    {
        // Abstract factory #1
        AbstractFactory factory1 = new ConcreteFactory1();
        Client          c1       = new Client(factory1);

        c1.Machine1();

        Console.ReadKey();
        // Abstract factory #2
        AbstractFactory factory2 = new ConcreteFactory2();
        Client          c2       = new Client(factory2);

        c2.Machine1();
        Console.ReadKey();

        AbstractFactory factory3 = new ConcreteFactory3();
        Client          c3       = new Client(factory3);

        c3.Machine1();


        // Wait for user input
        Console.ReadKey();
    }
예제 #3
0
        public void Factory3Test()
        {
            IAbstractFactory factory = new ConcreteFactory3(typeof(ProductA2), typeof(ProductB2));

            IProductA productA = factory.CreateProductA();
            IProductB productB = factory.CreateProductB();

            Assert.AreEqual(typeof(ProductA2), productA.GetType());
            Assert.AreEqual(typeof(ProductB2), productB.GetType());
        }