浅析.net简单工厂模式
编程时一门技术,更是一门艺术
简单工厂模式利用面向对象方式通过继承、封装、多态把程序的耦合度降低,设计模式使得程序更加灵活,容易修改,易于复用。
下面是服务器计算器代码:
usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; usingSystem.Threading.Tasks; namespaceDesignModel { ///<summary> ///计算器 ///</summary> publicclassCalculator //创建一个计算器的基类可以接受两个参数,任何算法只需重写计算结果方法即可。 { privatedouble_numberA; privatedouble_numberB; publicdoubleNumberA { get{returnthis._numberA;} set{this._numberA=value;} } publicdoubleNumberB { get{returnthis._numberB;} set{this._numberB=value;} } publicvirtualdoubleGetResult() { doubleresult=0; returnresult; } } ///<summary> ///加法 ///</summary> publicclassAdd:Calculator //每添加一种计算方式只需添加一个计算类并重写基类方法即可 { publicoverridedoubleGetResult() { return NumberA+NumberB; } } ///<summary> ///减法 ///</summary> publicclassSub:Calculator { publicoverridedoubleGetResult() { returnNumberA+NumberB; } } ///<summary> ///计算器工厂 ///</summary> publicclassCalculatorFactory { publicstaticCalculatorGetResult(stringoper) { Calculatorcalcu=null; switch(oper) { case"+": calcu=newAdd(); break; case"-": calcu=newSub(); break; } returncalcu; } } }
staticvoidMain(string[]args) { Console.WriteLine("请输入数字A:"); stringnumbera=Console.ReadLine(); Console.WriteLine("请输入运算符:"); stringoper=Console.ReadLine(); Console.WriteLine("请输入数字B:"); stringnumberb=Console.ReadLine(); Calculatorc=CalculatorFactory.GetResult(oper); c.NumberA=Convert.ToDouble(numbera); c.NumberB=Convert.ToDouble(numberb); Console.WriteLine(string.Format("{0}{1}{2}={3}",numbera,oper,numberb,c.GetResult())); Console.ReadLine(); }
基本验证没加,学习练习的同学可以自己加上
28种设计模式后续更新
usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; usingSystem.Threading.Tasks; namespaceDesignModel { ///<summary> ///计算器 ///</summary> publicclassCalculator //创建一个计算器的基类可以接受两个参数,任何算法只需重写计算结果方法即可。 { privatedouble_numberA; privatedouble_numberB; publicdoubleNumberA { get{returnthis._numberA;} set{this._numberA=value;} } publicdoubleNumberB { get{returnthis._numberB;} set{this._numberB=value;} } publicvirtualdoubleGetResult() { doubleresult=0; returnresult; } } ///<summary> ///加法 ///</summary> publicclassAdd:Calculator //每添加一种计算方式只需添加一个计算类并重写基类方法即可 { publicoverridedoubleGetResult() { return NumberA+NumberB; } } ///<summary> ///减法 ///</summary> publicclassSub:Calculator { publicoverridedoubleGetResult() { returnNumberA+NumberB; } } ///<summary> ///计算器工厂 ///</summary> publicclassCalculatorFactory { publicstaticCalculatorGetResult(stringoper) { Calculatorcalcu=null; switch(oper) { case"+": calcu=newAdd(); break; case"-": calcu=newSub(); break; } returncalcu; } } }
本文就是.net设计模式中的简单工厂模式的内容了,非常简单,下一篇,我们来谈谈策略模式