您现在的位置是:网站首页> 编程资料编程资料
浅析.net简单工厂模式_实用技巧_
2023-05-24
287人已围观
简介 浅析.net简单工厂模式_实用技巧_
编程时一门技术,更是一门艺术
简单工厂模式利用面向对象方式通过继承、封装、多态把程序的耦合度降低,设计模式使得程序更加灵活,容易修改,易于复用。
下面是服务器计算器代码:
复制代码 代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DesignModel
{
///
/// 计算器
///
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;
}
}
///
/// 加法
///
public class Add : Calculator //每添加一种计算方式只需添加一个计算类并重写基类方法即可
{
public override double GetResult()
{
return NumberA + NumberB;
}
}
///
/// 减法
///
public class Sub : Calculator
{
public override double GetResult()
{
return NumberA + NumberB;
}
}
///
/// 计算器工厂
///
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
{
///
/// 计算器
///
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;
}
}
///
/// 加法
///
public class Add : Calculator //每添加一种计算方式只需添加一个计算类并重写基类方法即可
{
public override double GetResult()
{
return NumberA + NumberB;
}
}
///
/// 减法
///
public class Sub : Calculator
{
public override double GetResult()
{
return NumberA + NumberB;
}
}
///
/// 计算器工厂
///
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设计模式中的简单工厂模式的内容了,非常简单,下一篇,我们来谈谈策略模式
您可能感兴趣的文章:
相关内容
- 完美兼容ie和firefox的asp.net网站加入收藏和设置主页_实用技巧_
- Asp.net程序优化js、css实现合并与压缩的方法_实用技巧_
- 使用.Net实现多线程经验总结_实用技巧_
- asp.net gridview分页:第一页 下一页 1 2 3 4 上一页 最末页_实用技巧_
- asp.net通过动态加载不同CSS实现多界面_实用技巧_
- Asp.net简单实现给图片增加文字水印_实用技巧_
- asp.net中MVC借助Iframe实现无刷新上传文件实例_实用技巧_
- ASP.Net中利用CSS实现多界面的两种方法_实用技巧_
- Asp.net配合easyui实现返回json数据实例_实用技巧_
- ASP.NET中实现获取调用方法名_实用技巧_
