浅析.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设计模式中的简单工厂模式的内容了,非常简单,下一篇,我们来谈谈策略模式