Beispiel #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            //简单工厂模式,判断逻辑写在了工厂里面,但不符合扩展开放-修改封闭原则
            Operarion op1 = SimpleFactory.CreateOperation("+");

            op1.NumberA = 1;
            op1.NumberB = 2;
            double ret1 = op1.GetResult();

            Console.WriteLine("简单工厂运算结果是:" + ret1.ToString());

            //工厂方法模式,判断逻辑写在了客户端
            IFactory  factory = new AddFactory();
            Operarion op2     = factory.CreateOperation();

            op2.NumberA = 3;
            op2.NumberB = 2;
            double ret2 = op2.GetResult();

            Console.WriteLine("工厂方法模式运算结果是:" + ret2);

            //抽象工厂模式

            Console.ReadKey();
        }
Beispiel #2
0
        public static Operarion CreateOperation(string oper)
        {
            Operarion operarion = null;

            switch (oper)
            {
            case "+":
                operarion = new OperationAdd();
                break;

            case "-":
                operarion = new OperationSub();
                break;

            case "/":
                operarion = new OperationDiv();
                break;

            default:
                break;
            }
            return(operarion);
        }