简单工厂模式

首先做道题。 使用面向对象的思想做一个实现加减乘除的计算机功能。

  public class Operation
    {
        private double numberA = 0;
        public double NumberA 
        {
            get { return numberA; }
            set { numberA = value; }
        }
        private double numberB = 0;
        public double NumberB
        {
            get { return numberB; }
            set { numberB = value; }
        }
        public virtual double  Result() 
        {
            return 0;
        }

    }
    public class Jia : Operation 
    {
        public override double Result()
        {
            return NumberA + NumberB;
        }
    }
    public class Jian : Operation
    {
        public override double Result()
        {
            return NumberA - NumberB;
        }
    }
    public class Cheng : Operation
    {
        public override double Result()
        {
            return NumberA * NumberB;
        }
    }
    public class Chu : Operation
    {
        public override double Result()
        {
            return NumberA / NumberB;
        }
    }

 // 简单工厂类
  public class OperationFactory 
    {
        public static Operation Caculate(string Operate)
        {
            Operation operate = null ;       
            switch (Operate)
            {
                case "+":
                    operate = new Jia();                   
                    break;
                case "-":
                    operate = new Jian();
                    break;
                case "*":
                    operate = new Cheng();
                    break;
                case "/":
                    operate = new Chu();
                    break;
                default:   
                    break;
            }     
            return operate;
        }
    }
 // 调用方法  在 Main方法中
    Operation o = OperationFactory.Caculate("+");
                o.NumberA = 10;
                o.NumberB = 2;
                Console.WriteLine(o.Result());

总结: 简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值