浅析.net简单工厂模式_asp.net教程-查字典教程网
浅析.net简单工厂模式
浅析.net简单工厂模式
发布时间:2016-12-29 来源:查字典编辑
摘要:编程时一门技术,更是一门艺术简单工厂模式利用面向对象方式通过继承、封装、多态把程序的耦合度降低,设计模式使得程序更加灵活,容易修改,易于复用...

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

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

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

复制代码 代码如下:

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

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新asp.net教程学习
    热门asp.net教程学习
    编程开发子分类