《JAVA与模式》学习笔记(一)——软件的可维护性与可复用性

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

《JAVA与模式》学习笔记(一)

————软件的可维护性与可复用性

作者:孤独萤火虫

对于面向对象的软件系统设计来说,在支持可维护性(Maintainability)的同时,提高系统的可复用性(Reusability)是一个核心问题。

导致一个软件设计的可维护性较低,也就是说随着性能的要求而“腐烂”的真正原因有四个:

1. 过于僵硬(Rigidity):很难在一个软件系统中加入一个新的性能。

2. 过于脆弱(Fragility):修改一个地方会导致其他地方发生故障,一碰就碎。

3. 复用率低(Immobility):导致只能重新写自己的代码,或剪贴源代码以达到复用。

4. 黏度过高(Viscosity):维护时很难保持原始意图和框架,诱使维护它的程序员采取错误维护方案。

软件复用的好处有:

1. 较高的生产效率。

2. 较高的软件质量。

3. 恰当的使用复用可以改善系统的可维护性。

数据的抽象化和继承关系使得概念和定义可以复用,多态性使得实现和应用可以复用,而抽象化和封装可以保持和促进系统的可维护性。

客户端依赖于一个抽象接口,而不是具体的类,这使得一个具有同样接口的新的类可以代替旧的类,而不至于影响到客户端,这是对抽象接口的复用。

以后将要学习的设计原则包括:

· “开-闭”原则(Open-Closed Principle OCP)

· 里氏代换原则(Liskov Substitution Principle LSP)

· 依赖倒转原则(Dependency Inversion Principle DIP)

· 接口隔离原则(Interface Segregation Principle ISP)

· 组合/聚合复用原则(Composition/Aggregation Principle CARP)

· 迪米特法则(Law of Demeter LoD)

系统的可扩展性是由OCP、LSP、DIP和CARP所保证的。

系统的灵活性是由OCP、LoD、ISP所保证的。

系统的可插入性是由OCP、LSP、DIP和CARP所保证的。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航