重读《JAVA与模式》之二
2016-08-27 00:00
281 查看
3.1软件系统的可维护性
一个软件系统设计的可维护性较低,即随着性能要求的变化而"腐烂“的真正原因有四个:过于僵硬、过于脆弱、复用率低、黏度过高。过于僵硬:牵一发而动全身,无法轻易插入新的功能模块。
过于脆弱:蝴蝶效应,修改一处代码,引起其他地方不可预测的故障
复用率低:轮子和各处牵扯太多,无法复用,导致到处都有新造的轮子
黏度过高:不能保存原始设计意图和原始设计框架,让程序员更倾向于用特例的方式硬插入新代码满足眼前的需求。说明系统的黏度过高。
好的系统设计应有如下性质:可扩展性、灵活性、可插入性
可扩展性:可方便增加新的性能
灵活性:允许代码修改平稳的发生,不会波及其他模块
可插入性:接口化,实现类可方便替换,如零件的标准化
3.2系统的可复用性
复用亦即重用,可提高生产效率、提高软件质量、改善系统的可维护性传统的复用:代码的拷贝粘贴、算法的复用、数据结构的复用
有的复用可提高可维护性,有的复用破坏了可维护性,因此支持可维护性的复用才是设计的准则
面向对象的复用:从算法和数据结构的层面上升到宏观的商业逻辑的抽象层次上
对可维护性的支持
适当提高可复用性,可提高系统的可扩展性。有赖于:”开-闭“原则,里氏代换原则、依赖倒转原则、组合/聚合复用原则。适当提高可复用性,可提高系统的灵活性。有赖于”开-闭“原则、迪米特法则、接口隔离原则。
适当提高可复用性,可提高系统的可插入性。有赖于:”开-闭“原则,里氏代换原则、依赖倒转原则、组合/聚合复用原则。
设计原则:
”开-闭“原则 OCP里氏代换原则 LSP
依赖倒转原则 DIP
接口隔离原则 ISP
组合/聚合复用原则 CARP
迪米特法则 LoD
3.3老子论不武
善为士者不武。好的系统设计师设计好的系统,维护时不需要让人大动干戈天下有道,走马以粪,天下无道,戎马生于效。好的设计,维护成本低;差的设计,维护人员疲于奔命
相关文章推荐
- 重读《JAVA与模式》之一
- 重读《设计模式》之学习笔记(三)--SINGLETON模式的疑惑
- 《java与模式》笔记(七) 迪米特法则
- 《Java与模式》学习笔记(5)——Singleton
- 《Java与模式》学习笔记:设计模式——合成(Composite)模式
- 重读Effective Java(一)
- 重读C#高级编程之委托and事件
- feof函数重读问题
- 重读TCP协议
- 【重读.转】《解放日报》关于《黑客帝国》的访谈
- 重读PE文件格式
- C++ Primer (3RD) 重读笔记——基于过程的程序设计
- 10月5日 重读“委托”
- 《java与模式》学习系列——简单工厂模式
- 《java与模式》学习系列——访问者模式
- 《java与模式》读书笔记之一----简单工厂模式
- 重读《编程语言的发展趋势及未来方向》
- 文人的堕落——我们需要重读鲁迅
- 《JAVA与模式》26天系列—第16天—策略模式