系统重构,就是在不改变软件的外部行为的基础上,改变软件内部的结构,使其更加易于阅读、易于维护和易于变更。 

当需求变更了,我们现在的设计不能满足了,怎么办呢?通过安全而平稳的重构方法先重构我们的系统,使之可以应付那个需求,然后再添加代码,实现新需求。这个过程被称为“两顶帽子”:一顶是只重构而不新增功能, 一顶是增加新的功能实现新需求。正因为如此,我们在设计时思考当下就可以了。

【例】

系统架构重构方案 系统重构方法_数据

代码如下:

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、《大话重构》