[设计模式]学习设计模式之一(简单工厂模式)

来源:互联网 发布:win7美化软件 编辑:程序博客网 时间:2024/04/29 17:51

简单工厂是我接触的第一种设计模式,在刚开始学习编程时,老师要求写一个计算器软件。于是,用textBox和button组合版的就出炉了!

除了一个form什么都没有,闲在想起来,那时候确实是想法简单。

那么就写个简单工厂的计算器吧!

写下面几个类

 public abstract class Operate//计算抽象基类    {        public double NumberA { get; set; }        public double NumberB { get; set; }        public abstract double CalResult();    }    public class OperationAdd : Operate//加法    {        public override double CalResult()        {            double result;            result = NumberA + NumberB;            return result;        }    }    public class OperationSub : Operate//减法    {        public override double CalResult()        {            double result;            result = NumberA - NumberB;            return result;        }    }    public class OperationFactory//简单工厂    {        public static Operate CreatOperate(string operate)        {            switch (operate)            {                case "+":                    return new OperationAdd();                case "-":                    return new OperationSub();                default:                    return null;            }        }    }

 

调用代码如下

 

        static void Main(string[] args)        {           Operate oper= OperationFactory.CreatOperate("+");           oper.NumberA = 10;           oper.NumberB = 3;           double result= oper.CalResult();           Console.WriteLine(result);           Console.ReadLine();        }



这样,就实现了简单的业务和调用分离。面向抽象编程的思想就体现出来了!

如果需要加入其它的计算,如:乘法、除法等,只需要增加乘法除法的Operate的子类,再在工厂类中增加case 判断,就可以了。

 

使用设计模式,可以减少重复代码和维护成本。 比如,某一个计算方法出现了bug 那么,只需要更改这个计算类就可以。

原创粉丝点击