编程时一门技术,更是一门艺术
简单工厂模式利用面向对象方式通过继承、封装、多态把程序的耦合度降低,设计模式使得程序更加灵活,容易修改,易于复用。
下面是服务器计算器代码:
复制代码 代码如下:
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设计模式中的简单工厂模式的内容了,非常简单,下一篇,我们来谈谈策略模式
您可能感兴趣的文章:- .NET简单工厂模式讲解
- asp.net 简单工厂模式和工厂方法模式之论述
- JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
- Android源码学习之工厂方法模式应用及优势介绍
- 深入c#工厂模式的详解
- PHP 工厂模式使用方法
- javascript 模式设计之工厂模式学习心得
- C++设计模式之简单工厂模式实例
- JavaScript 模式之工厂模式(Factory)应用介绍
- .NET工厂方法模式讲解