简单工厂模式
2016-02-17 16:50
197 查看
工厂管理类
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 简单工厂模式 { /// <summary> /// 操作工厂 /// </summary> class OperationFactory { /// <summary> /// 创建当前运算实例 /// </summary> /// <param name="strOperation"></param> /// <returns></returns> public static Operation CreateOperation(string strOperation) { Operation operation = null; switch (strOperation) { case "+": operation = new OperationAdd(); break; case "-": operation = new OperationSub(); break; case "*": operation = new OperationMul(); break; case "/": operation = new OperationDiv(); break; default: Console.WriteLine("输入的操作符号有误!"); break; } return operation; } } }界面逻辑类
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 简单工厂模式 { class Program { static void Main(string[] args) { //界面逻辑代码 Console.WriteLine("简单工厂模式测试"); Console.Write("请输入数字A=>"); double numberA = Convert.ToDouble(Console.ReadLine()); Console.Write("请输入操作符号【+、-、*、/】=>"); string strOperation = Console.ReadLine(); Console.Write("请输入数字B=>"); double numberB = Convert.ToDouble(Console.ReadLine()); Operation operation = OperationFactory.CreateOperation(strOperation); operation.NumberA = numberA; operation.NumberB = numberB; double result = operation.GetResult(); Console.WriteLine("测试结果是=>" + result); } } }在一下情况下,当需要管理多个子类,且需要更好的维护,才好用。
1.基类架构不变
2.修改继承基类的子类
3.修改工厂管理类
缺点
1.如果添加新的运算类,需要修改工厂管理类,违背了开放--封闭原则
相关文章推荐
- zabbix 在定义key解释
- Learn Python the Hard Way Ex41记录
- Hibernate与Mybatis比较
- eclipse报jvm terminated.exitcode=2异常
- [BZOJ 1027]合金
- Android真机调试出现的相关问题
- KVO 和 KVC 的使用和实现
- Android开发常用快捷键(eclipse)
- Thermal Desktop V4.8(通用流体计算(CFD)软件)
- The Story of self Parameter in Python, Demystified
- QQ(iOS)客户端的粘性动画效果
- 【小白的CFD之旅】13 敲门实例【续3】
- 关于 Module build failed: ReferenceError: Promise is not defined 错误
- 【SCO】利用SCO流程自动关闭SCOM警报
- Unity 相关经典博客资源总结(持续更新)
- CodeForces 25D Roads not only in Berland【并查集】
- 设计模式-观察者
- leetcode 36: Valid Sudoku
- JMeter中对于Json数据的处理方法
- VeriSTAR.Info.VeriSTAR.Hull.v5.10.Win64 1CD船舶分析////ANSYS Customization Tools (ACT) 17.0 1CD