软件的可复用性和维护性
本文主要用来帮助理解软件的可复用性和维护性,以及其为什么对软件设计如此重要。建议阅读时间3mins
一个好的系统设计应该有如下3个性质:
- 可扩展性(Extensibility):新的性能可以很容易地加入到系统中去。
- 灵活性(Flexibility):允许代码修改平稳的发生,而不会波及到其它模块。
- 可插入性(Pluggability):可以很容易将一个类抽出去,同时将另一个有同样接口的类加进来。
所以,要做一个好的系统设计的关键是恰当地提高软件的可维护性和可复用性。
一、可复用性
复用不仅仅是代码的复用,虽然代码复用确实是复用的一个初等形式。代码的剪贴复用、算法的复用、数据结构的复用都是传统的复用种类,它们都各有优点,也各有缺陷。传统的复用方案的一个致命缺陷就是复用常常是以破坏可维护性为代价的。
复用的好处是可以得到 较高的生产效率以及随之而来的成本降低、较高的软件质量(错误可以更快的被纠正)以及恰当的使用复用可以改善系统的可维护性。
一般来说软件的复用率并不高,当发现有一段代码、函数、模块可用于新功能时,这些已有的代码总是依赖一大堆其它的东西,很难将它们分开,这就是复用率低的体现。
二、可维护性
我们要支持可维护性的复用,也就是在保持甚至提高系统的可维护性的同时,实现系统的复用。
那么如何才能设计一个系统,已达到提高可维护性的复用的目的呢?
答:首先,要知道在面向对象的设计里面,可维护性是以设计原则和设计模式为基础的,设计原则包含:开-闭原则、里氏代换原则、接口隔离原则、依赖倒转原则和组合/聚合复用原则、迪米特法则,它们都是复用的原则,能提高系统的复用性与可维护性。
其次,设计模式则是对设计原则的具体指导,可以恰当地将理论应用到实践中。设计模式可以划分为创建模式、结构模式和行为模式三大类别。
综上,根据这些设计原则进行系统设计,就能提高系统的可拓展性、灵活性以及可插入性,最终达到提高软件的可维护性和可复用性的目的。

浙公网安备 33010602011771号