初读这本书,感觉确实不错,作者很有实力。第三章提到软件的可维护性和可复用性,作者是借助java语言的机制,来讲解了面向对象设计模式的重要知识。
一个软件随着性能要求的变化而变得“腐烂”的原因有4个:过于僵硬,过于脆弱,复用率低,黏度过高。
僵硬:如果需要给一个系统增加一个功能,可能会牵涉到许多代码模块的更改,使得项目不敢增加新的功能。
脆弱:由于系统之间的模块存在着某种程度上的耦合,所以当改变系统中的某个功能时,可能会导致其他模块出现问题,这就说明系统过于脆弱了。
复用率低:所谓复用就是指,一个软件的组成部分,可以在同一项目的不同地方,或者是在另一个项目中重复使用。由于系统中模块之间的耦合过大,导致代码依赖很多,很难将它们分开,所以复用就成了难事。
黏度过高:一种改动可以以保存原始设计意图和设计框架的方式进行,也可以以破坏原始意图和框架的方式进行。一个系统总是使得采取第二种方法比第一种容易,那么就叫做黏度过高。
针对上述问题,我们设计的系统要具有可扩展性,灵活性,和可插入性。
可扩展性:新的系统功能可以很容易的加入到系统中去。
灵活性:可以允许代码修改平稳的发生,而不牵涉到别的代码。
可插入性:可以很容易的将一个类抽取出去,同时将一个具有同样接口的类插入进来。
此次整理就到这里,以后会继续更新,并且会涉及到Java具体代码。