Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            // get nano car
            AbstractFactory carFactory = FactoryProducer.GetFactory("car");
            ICar            nanoCar    = carFactory.GetCar("nano");

            nanoCar.GetSpecifications();

            // get white color
            AbstractFactory colorFactory = FactoryProducer.GetFactory("color");
            IColor          color        = colorFactory.GetColor("white");

            color.GetColor();

            Console.Read();
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            //获取形状工厂
            AbstractFactory shapeFactory = FactoryProducer.GetFactory("SHAPE");

            //获取形状为 Circle 的对象
            IShape shape1 = shapeFactory.GetShape("CIRCLE");

            //调用 Circle 的 draw 方法
            shape1.Draw();

            //获取形状为 Rectangle 的对象
            IShape shape2 = shapeFactory.GetShape("RECTANGLE");

            //调用 Rectangle 的 draw 方法
            shape2.Draw();

            //获取形状为 Square 的对象
            IShape shape3 = shapeFactory.GetShape("SQUARE");

            //调用 Square 的 draw 方法
            shape3.Draw();

            //获取颜色工厂
            AbstractFactory colorFactory = FactoryProducer.GetFactory("COLOR");

            //获取颜色为 Red 的对象
            IColor color1 = colorFactory.GetColor("RED");

            //调用 Red 的 fill 方法
            color1.Fill();

            //获取颜色为 Green 的对象
            IColor color2 = colorFactory.GetColor("GREEN");

            //调用 Green 的 fill 方法
            color2.Fill();

            //获取颜色为 Blue 的对象
            IColor color3 = colorFactory.GetColor("BLUE");

            //调用 Blue 的 fill 方法
            color3.Fill();

            Console.ReadKey();
        }
Ejemplo n.º 3
0
        /*
         * Este padrão permite a criação de famílias de objetos
         * relacionados ou dependentes por meio de uma única
         * interface e sem que a classe concreta seja especificada
         * É o mais apropriado quando o número e os tipos gerais de
         * objetos de produtos permanecem constantes, e há diferenças
         * em produtos específicos famílias
         *
         * Quando usar:
         *  - o sistema deve ser independente de qual produto será criado e representado
         *  - o sistema deve ser configurado com uma familia de produto multiplo
         *  - uma família de objetos de produtos relacionados é projetada para ser
         *      usada em conjunto e você precisa impor essa restrição
         *  - voce quer prover uma library de produtos e voce quer revelar apenas suas interfaces
         *
         */
        static void Main(string[] args)
        {
            AbstractFactory shapef = FactoryProducer.GetFactory("shape");

            Shapes.IShape circle = shapef.GetShape("circle");
            circle.Draw();

            Shapes.IShape rectangle = shapef.GetShape("rectangle");
            rectangle.Draw();

            AbstractFactory colorf = FactoryProducer.GetFactory("color");

            Colors.IColor blue = colorf.GetColor("blue");
            blue.Fill();


            Console.ReadKey();
        }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            Abstract_Factory.AbstractFactory shapeFactory = FactoryProducer.GetFactory(false);
            IShape shape1 = shapeFactory.GetShape("square");

            shape1.DrawShape();
            IShape shape2 = shapeFactory.GetShape("Rectangle");

            shape2.DrawShape();

            Abstract_Factory.AbstractFactory roundedShapeFactory = FactoryProducer.GetFactory(true);
            IShape shape3 = roundedShapeFactory.GetShape("square");

            shape3.DrawShape();
            IShape shape4 = roundedShapeFactory.GetShape("rectangle");

            shape4.DrawShape();
        }
Ejemplo n.º 5
0
        private static void Main(string[] args)
        {
            // 初始化创建汽车的两个工厂
            Factory hongQiCarFactory = FactoryProducer.GetFactory("HongQiCarFactory");
            Factory aoDiCarFactory   = FactoryProducer.GetFactory("AoDiCarFactory");

            // 生产一辆红旗汽车
            Car hongQi = hongQiCarFactory.CreateCar();

            hongQi.Go();

            //生产一辆奥迪汽车
            Car aoDi = aoDiCarFactory.CreateCar();

            aoDi.Go();

            Console.Read();
        }