当前位置: 首页 > news >正文

简单工厂模式

摘自《大话设计模式》(程杰 著)

面向对象的分析设计编程思想:通过封装、继承、多态把程序的耦合度降低。
让业务逻辑与界面逻辑分开,让它们之间的耦合度下降,容易维护或扩展。​

计算器控制台程序,要求输入两个数和运算符号,得到结果。

如果需要更改某一运算,我们只需要改对应的OperationXXX子类。
如果需要增加各种复杂运算,比如平方根,立方根,自然对数,正弦余弦等,只要增加相应的运算子类,并在运算类工厂switch中增加分支。
如果需要改界面,不会影响到运算。

image

Operation.cs

把加减乘除都写成运算类的子类,继承它后,重写GetResult()方法。
这样如果要修改任何一个算法,就不需要提供其他算法的代码。

public class Operation
{private double _numberA = 0;private double _numberB = 0;public double NumberA{get { return _numberA; }set { _numberA = value; }}public double NumberB{get { return _numberB; }set { _numberB = value; }}public virtual double GetResult(){double result = 0;return result;}
}class OperationAdd: Operation
{public override double GetResult(){double result = 0;result = NumberA + NumberB;return result;}
}class OperationSub : Operation
{public override double GetResult(){double result = 0;result = NumberA - NumberB;return result;}
}class OperationMul : Operation
{public override double GetResult(){double result = 0;result = NumberA * NumberB;return result;}
}class OperationDiv : Operation
{public override double GetResult(){double result = 0;if (NumberB == 0)throw new Exception("除数不能为0");result = NumberA / NumberB;return result;}
}

OperationFactory.cs

用一个单独的类来做这个创造实例的过程。
只需要输入运算符号,工厂就实例化出合适的对象,通过多态,返回父类的方式实现了计算器的结果。

public class OperationFactory
{public static Operation createOperate(string operate){Operation oper = null;switch (operate){case "+":oper = new OperationAdd();break;case "-":oper = new OperationSub();break;case "*":oper = new OperationMul();break;case "/":oper = new OperationDiv();break;}return oper;}
}

Program.cs

Operation oper;
oper = OperationFactory.createOperate("+");
oper.NumberA = 1;
oper.NumberB = 2;
double result = oper.GetResult();
Console.Write(result);
http://www.jsqmd.com/news/66278/

相关文章:

  • 2025年精神堡垒标识公司核心能力深度评测报告
  • 如何保证消息顺序?
  • 【触想智能】工控一体机在电力行业上的应用特点
  • 2025 年上海装修公司最新推荐榜,聚焦企业专业资质与全流程服务能力深度解析上海办公装修,上海实验室装修,上海厂房办公装修,上海展厅装修工厂装修,上海无尘车间装修,上海半导体办公室装修服务商推荐
  • 2025西南地区公园标识品牌推荐:4家靠谱厂商助你解决导视痛
  • 跨境贸易企业适用的稠州结汇公司优质推荐清单 - 解决额度与安
  • 2025申请香港研究生的中介机构是什么
  • 2025义乌结汇公司推荐指南跨境贸易企业的优选清单
  • 智能安全帽哪家好?哪家品质优、售后优?
  • 智能安全帽选购指南:看厂家规模、定制工艺与产品舒适度的综合考
  • 智能安全帽选购指南:哪个厂家的产品更优质靠谱?
  • 2025 年随身 WiFi 品牌推荐:为啥越来越多人选「飞猫」?一篇实测+拆解说清楚
  • 2025香港读研中介机构哪家好
  • 2025 权威驱蚊品牌 TOP5 推荐:科学防护,认准专业认证
  • 2025香港留学机构哪个好
  • 【2025最新】Zotero下载安装教程:从零开始高效管理学术资料
  • 2025香港留学中介机构排名第一的有哪些
  • 2025新加坡留学机构排名一览表
  • 2025新加坡留学中介机构排名前十名
  • 2025 年信号稳定的随身WiFi推荐:为什么越来越多人选“飞猫”?
  • 2025新加坡留学中介排名
  • 2025年12月玻璃反应釜厂家权威推荐榜:机械搅拌/顶入式/真空防腐/制药化工专用/双层单层夹套升降式,匠心工艺与高效稳定之选
  • 2025新加坡申请留学哪个机构好
  • 温州博士安全锁具:靠谱之选,口碑载道
  • 2025新加坡十大留学机构
  • 温州博士安全用品:高性价比与好口碑的安全锁具之选
  • 解读温州博士安全用品有限公司的实力、创新点、产品质量
  • 进口拉断阀品牌推荐:曼太柯是卓越之选
  • 2025 精密金属制造十大优选厂家!资质设备双在线,采购参考不踩坑
  • 2025南京新加坡留学中介有哪些