您的位置:首页 > 编程语言 > Java开发

重读《JAVA与模式》之二

2016-08-27 00:00 281 查看

3.1软件系统的可维护性

一个软件系统设计的可维护性较低,即随着性能要求的变化而"腐烂“的真正原因有四个:过于僵硬、过于脆弱、复用率低、黏度过高。

过于僵硬:牵一发而动全身,无法轻易插入新的功能模块。

过于脆弱:蝴蝶效应,修改一处代码,引起其他地方不可预测的故障

复用率低:轮子和各处牵扯太多,无法复用,导致到处都有新造的轮子

黏度过高:不能保存原始设计意图和原始设计框架,让程序员更倾向于用特例的方式硬插入新代码满足眼前的需求。说明系统的黏度过高。

好的系统设计应有如下性质:可扩展性、灵活性、可插入性

可扩展性:可方便增加新的性能

灵活性:允许代码修改平稳的发生,不会波及其他模块

可插入性:接口化,实现类可方便替换,如零件的标准化

3.2系统的可复用性

复用亦即重用,可提高生产效率、提高软件质量、改善系统的可维护性

传统的复用:代码的拷贝粘贴、算法的复用、数据结构的复用

有的复用可提高可维护性,有的复用破坏了可维护性,因此支持可维护性的复用才是设计的准则

面向对象的复用:从算法和数据结构的层面上升到宏观的商业逻辑的抽象层次上

对可维护性的支持

适当提高可复用性,可提高系统的可扩展性。有赖于:”开-闭“原则,里氏代换原则、依赖倒转原则、组合/聚合复用原则。

适当提高可复用性,可提高系统的灵活性。有赖于”开-闭“原则、迪米特法则、接口隔离原则。

适当提高可复用性,可提高系统的可插入性。有赖于:”开-闭“原则,里氏代换原则、依赖倒转原则、组合/聚合复用原则。

设计原则:

”开-闭“原则 OCP

里氏代换原则 LSP

依赖倒转原则 DIP

接口隔离原则 ISP

组合/聚合复用原则 CARP

迪米特法则 LoD

3.3老子论不武

善为士者不武。好的系统设计师设计好的系统,维护时不需要让人大动干戈

天下有道,走马以粪,天下无道,戎马生于效。好的设计,维护成本低;差的设计,维护人员疲于奔命
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  设计模式