浅析.net简单工厂模式
来源: 阅读:843 次 日期:2014-12-18 14:06:35
温馨提示: 小编为您整理了“浅析.net简单工厂模式”,方便广大网友查阅!

程时一门技术,更是一门艺术

简单工厂模式利用面向对象方式通过继承、封装、多态把程序的耦合度降低,设计模式使得程序更加灵活,容易修改,易于复用。

下面是服务器计算器代码:

代码如下:

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

更多信息请查看IT技术专栏

更多信息请查看网络编程
手机网站地址:浅析.net简单工厂模式
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map