设计模式-简单工厂模式

发布时间:2019-08-06 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了设计模式-简单工厂模式脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

简单工厂模式:
案例:请用C++、Java、C#vb.net任意一种面向对象语言实现一个计算机控制台程序,要求输入两个数和运算符号得到结果
case1:变量命名规范
case2:使用swITch分支判断输入的运算符(取代if/else)
case3:新要求,如何易维护,易扩展,又容易复用?答曰:面向对象

3.1 易维护:要改功能,如将控制台的计算器修改为windows的计算器如何实现?
3.2 易复用:代码的逻辑可能并不仅是符合当前的功能,未来新的功能可能可以复用这个代码逻辑(功能)
3.3 易扩展:就目前案例,假如仅满足加减法,易扩展代表的就是在不影响加,减法功能的前提下(不需要重新编译等),添加乘除,开平方位移运算等

case4:首先想到的做法会是将控制台输入,运算,结果展示都写到一个方法(类)里,假如需要在不同的端做展示或计算时得复制代码,修改部分逻辑,但这样代码冗余,重复代码就非常多了。解决措施是将计算的代码,与显示的代码分离开,即单独封装好计算功能与显示功能。那么计算功能在该条件下是可以复用的。

case5:那么如果需要新增个运算方式,此时封装的计算功能的类需要重新编译,添加一个switch分支,为此,可以抽象出一个共通的父类,如算法类,各个运算都需要继承这个算法类,该算法类提供了一个获取计算结果值的方法,各子类(加减乘除运算类)仅需重写该方法,如此即便新增再多的新运算对之前的功能也没有影响

case6:本章重点来了,有那么多的子运算类了,如何管理好?通过工厂模式,在工厂类中的静态方法接收运算符参数再生产子运算类对象(switch 根据运算符 条件判断 生产那个子类对象 ),然后用父类对象去接收(多态),再把要计算的值赋给父类的成员变量,最后调用获取计算结果的方法获取到结果。

总结下:没想到一个这么小的功能就可以把抽象、封装、继承、多态体现的如此淋漓尽致,做个编程的有心人,避免做代码的搬运工。

脚本宝典总结

以上是脚本宝典为你收集整理的设计模式-简单工厂模式全部内容,希望文章能够帮你解决设计模式-简单工厂模式所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。