计算器经典案例
//调方法
//得结果
委托也可以实现多态
面向过程计算器 Rev00
遇到问题就直觉地用计算机能够理解的逻辑来描述和表达待解决的问题和具体的求解过程,这其实是用计算机的方式去思考。
但这样的思维只为满足实现当前的需求,程序不容易维护,不容易扩展,更不容易复用。
面向对象的分析设计思想,通过封装、继承、多态把程序的耦合度降低,
使用设计模式使得程序更加的灵活,容易修改,并且易于复用
1. 面向对象计算器_封装版_Rev01
//找对象//调方法
//得结果
2. 面向对象计算器_继承多态虚方法版_Rev02
main()方法中switch 运算符,返回子类对象给父类,统一调用cal()方法3. 面向对象计算器_抽象类版_Rev03
4. 面向对象计算器_接口版_Rev04
5. 面向对象计算器_构造方法进行参数传递_Rev05
添加一个新功能,需要新写一个类,再switch中添加一个新的运算符(添加功能不应该修改原来运行很好的程序,这样有风险
所以,就是应该把新增功能和原有功能分解开,模块化
不要在添加新功能的时候对原运行良好的代码产生影响)6. 面向对象计算器_简单工厂模式 Rev06
根据运算符创建可用对象--简单工厂模式7. 委托多态计算器 Rev07
多态是不是只有子类、父类这一种情况?不是委托也可以实现多态
8. 计算器终极版_插件机制(反射) Rev08
使用抽象工厂+反射的方式,实现可插拔式的计算器
完美实现了以下功能:
1)可维护:如果要修改功能,只要用新的dll替换旧的dll就可以
2)可复用:程序里面使用的是抽象工厂加反射的方式
3)可扩展:只要将编译好的dll放到Method文件夹中,计算器就具有了执行该dll功能的能力
4)灵活性好:只要将.exe与method文件夹放在一块,程序就可以运行