简单工厂模式
发布日期:2021-06-29 19:13:58
浏览次数:2
分类:技术文章
本文共 2303 字,大约阅读时间需要 7 分钟。
简单工厂模式
面向对象编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类简单工厂模式最大的优点在于工厂类中包含了必要的逻辑判断,根据客户端选择的条件动态的实例化相关的类,对于客户端来说,去除了与具体产品的依赖
利用简单工厂模式编写具有加减乘除运算功能的小程序
public class Operation //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; result = NumberA* NumberB; return result; } } 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; }} class Program//客户端代码 { static void Main(string[] args) { Operation oper; oper = OperationFactory.createOperate("+"); oper.NumberA = 56; oper.NumberB = 55; double result = oper.GetResult(); Console.WriteLine(result); Console.ReadKey(); } } }
转载地址:https://czhenya.blog.csdn.net/article/details/78002401 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月16日 00时13分56秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
NIO实现客户端、服务端
2019-04-30
MySQL查询中多表连接查询存在的必要性?
2019-04-30
反思如何成为一个优秀的程序员
2019-04-30
Semantic-UI复习
2019-04-30
日志异常处理
2019-04-30
SpringBoot的启动类的位置
2019-04-30
JPA,Hibernate框架使用的踩坑记录和使用的一些细节问题
2019-04-30
Semantic-UI进行前端的表单的验证功能
2019-04-30
java.File类常用方法
2019-04-30
java中 == 与equals()的区别
2019-04-30
【日常学习】origin入门 保姆级教程
2019-04-30
【踩坑指南】ROS
2019-04-30
【学习随记】Word域代码相关
2019-04-30
MongoDB入门简记
2019-04-30
软件工程习题——第七周:面向对象设计-1
2019-04-30
软件工程习题——第七周:面向对象设计-2
2019-04-30
软件工程习题——第八周:编码实现
2019-04-30
软件工程习题——第八周:敏捷开发方法
2019-04-30
软件工程习题——第九周:软件测试-1
2019-04-30