编程时一门技术,更是一门艺术
简单工厂模式利用面向对象方式通过继承、封装、多态把程序的耦合度降低,设计模式使得程序更加灵活,容易修改,易于复用。
下面是服务器计算器代码:
复制代码 代码如下:
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
namespace designmodel
{
/// <summary>
/// 计算器
/// </summary>
public class calculator //创建一个计算器的基类可以接受两个参数,任何算法只需重写计算结果方法即可。
{
private double _numbera;
private double _numberb;
public double numbera
{
get { return this._numbera; }
set { this._numbera = value; }
}
public double numberb
{
get { return this._numberb; }
set { this._numberb = value; }
}
public virtual double getresult()
{
double result = 0;
return result;
}
}
/// <summary>
/// 加法
/// </summary>
public class add : calculator //每添加一种计算方式只需添加一个计算类并重写基类方法即可
{
public override double getresult()
{
return numbera + numberb;
}
}
/// <summary>
/// 减法
/// </summary>
public class sub : calculator
{
public override double getresult()
{
return numbera + numberb;
}
}
/// <summary>
/// 计算器工厂
/// </summary>
public class calculatorfactory
{
public static calculator getresult(string oper)
{
calculator calcu = null;
switch (oper)
{
case "+":
calcu = new add();
break;
case "-":
calcu = new sub();
break;
}
return calcu;
}
}
}
复制代码 代码如下:
static void main(string[] args)
{
console.writeline("请输入数字a:");
string numbera = console.readline();
console.writeline("请输入运算符:");
string oper = console.readline();
console.writeline("请输入数字b:");
string numberb = console.readline();
calculator c = 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种设计模式后续更新
复制代码 代码如下:
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
namespace designmodel
{
/// <summary>
/// 计算器
/// </summary>
public class calculator //创建一个计算器的基类可以接受两个参数,任何算法只需重写计算结果方法即可。
{
private double _numbera;
private double _numberb;
public double numbera
{
get { return this._numbera; }
set { this._numbera = value; }
}
public double numberb
{
get { return this._numberb; }
set { this._numberb = value; }
}
public virtual double getresult()
{
double result = 0;
return result;
}
}
/// <summary>
/// 加法
/// </summary>
public class add : calculator //每添加一种计算方式只需添加一个计算类并重写基类方法即可
{
public override double getresult()
{
return numbera + numberb;
}
}
/// <summary>
/// 减法
/// </summary>
public class sub : calculator
{
public override double getresult()
{
return numbera + numberb;
}
}
/// <summary>
/// 计算器工厂
/// </summary>
public class calculatorfactory
{
public static calculator getresult(string oper)
{
calculator calcu = null;
switch (oper)
{
case "+":
calcu = new add();
break;
case "-":
calcu = new sub();
break;
}
return calcu;
}
}
}
本文就是.net设计模式中的简单工厂模式的内容了,非常简单,下一篇,我们来谈谈策略模式
您可能感兴趣的文章:
如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!
网友评论