软件在完成开发后,由于对缺陷的修改,以及新功能的添加,对代码的改动可能较大,同时软件的质量和软件的维护性也越来越低,在软件开发者的角度看软件的功能、逻辑更加复杂了,代码的可读性和可维护性降低了。
在《大话重构》这本书里面作者提到使用系统重构的方法来解决这一类问题,主要的思路是以单元测试为保障;逐步抽离小的功能(小步快跑的思想),分离大方法、大对象,在分离成各个功能块的时候有很多相似的地方,就对这些相似的功能进行合并,实现代码的复用;考虑一下程序可扩展的地方,为以后添加新功能做准备;用设计模式的理念来实现程序的解耦;最后对程序分层,使结构清晰,逻辑明了。整个重构以领域驱动设计为主导,以真实业务来指导整个重构的过程。
整个重构的过程作者分为以下七个步骤:
第一步:分解大函数
抽取方法
第二步:拆分大对象
抽取类,职责驱动设计
单一职责原则(SRP)与对象拆分
合久不分,分久必合——类的合并
第三步:提高代码复用
代码复用和DRY原则
重复代码在同一对象中——抽取方法
重复代码在不同对象中——抽取类
不同对象中的重复代码——封装为实体类
当代码所在的类具有某种并列关系式——抽取父类
当继承泛滥时——将继承转为组合
重复代码是一些零散的碎片时——继承结合模板模式
第四步:发现可扩展点
开发-封闭原则
面向切面的扩展设计
第五步:降低程序的依赖
使用很多设计模式
第六步:开始分层
第七部:领域驱动设计
领域驱动设计(Domain Driven Design)是一种软件开发方法,目的是让软件系统在实现时准确的基于对真实业务过程的建模并根据真实业务过程的调整而调整。
最后的结果是:使程序易读;保证维护容易;保证需求变更轻易进行,而不是大改——要做到,需要系统重构,持续不断对内部质量进行优化改进。
<!--EndFragment--><!--EndFragment-->