系统重构基础篇
系统重构,就是在不改变软件的外部行为的基础上,改变软件内部的结构,使其更加易于阅读、易于维护和易于变更。
当需求变更了,我们现在的设计不能满足了,怎么办呢?通过安全而平稳的重构方法先重构我们的系统,使之可以应付那个需求,然后再添加代码,实现新需求。这个过程被称为“两顶帽子”:一顶是只重构而不新增功能, 一顶是增加新的功能实现新需求。正因为如此,我们在设计时思考当下就可以了。
【例】

代码如下:
1 public abstract class XmlBuildFactoryTemplate { 2 /** 3 * 初始化工厂。根据路径读取XML文件,将XML文件中的数据装载到工厂中 4 * @param path XML文件的路径 5 */ 6 public void initFactory(String path){ 7 8 // 寻找XML文件,读取数据流 9 InputStream inputStream = findXmlFile(path); 10 11 // 解析XML文件,返回根 12 Element root = readXmlStream(inputStream); 13 14 // 根据XML文件创建类,放入工厂中 15 buildFactory(root); 16 } 17 18 /** 19 * 读取一个XML的文件,输出其数据流 20 * @param path XML文件的路径 21 * @return InputStream文件输入流 22 */ 23 protected InputStream findXmlFile(Stringpath) { 24 ... 25 } 26 27 /** 28 * 读取并解析一个XML的文件输入流,以Element的形式获取XML的根,返回之 29 * @param inputStream 文件输入流 30 * @return ElementXML的根 31 */ 32 protected Element readXmlStream (InputStream inputStream) { 33 ... 34 } 35 36 /** 37 * 用从一个XML的文件中读取的数据构建工厂 38 * @param root 从一个XML的文件中读取的数据的根 39 */ 40 protected abstract void buildFactory(Element root); 41 42 }
在面向对象的世界里,我们设计的类、方法、关联,应当与现实世界中的事物、行为,及其相互的关系对应起来。现实世界有什么事物,这些事物都应当有什么行为,相互之间是什么关系,则我们在软件世界里就应当设计什么类、什么方法和它们之间的关联关系。 只有这样的设计才是易于为人所理解的设计,这就是“领域驱动设计”(DDD: Domain-Driven Design)的思想。
重构方法分为以下几个层次:方法的重构、对象的重构、对象间的重构、继承体系间的重构、组织数据的重构与体系架构的重构。
【参考文献】
1、《大话重构》

浙公网安备 33010602011771号