| 摘要 | 第1-5页 |
| ABSTRACT | 第5-8页 |
| 第一章 绪论 | 第8-12页 |
| ·课题背景 | 第8-10页 |
| ·课题意义 | 第10页 |
| ·论文的主要工作 | 第10-12页 |
| ·论文的研究内容 | 第10页 |
| ·论文的结构 | 第10-12页 |
| 第二章 不良代码特征的研究 | 第12-25页 |
| ·重复的代码(DUPLICATED CODE) | 第12-15页 |
| ·过长函数(LONG METHOD) | 第15-16页 |
| ·无用类(UNUSED CLASSES) | 第16-17页 |
| ·树形依赖关系(DEPENDENCY GRAPH) | 第17页 |
| ·静态环状依赖关系(STATIC CIRCLE DEPENDENCY) | 第17-18页 |
| ·显式依赖(EXPLICIT DEPENDENCY) | 第18-20页 |
| ·过长参数列(LONG PARAMETER LIST) | 第20-22页 |
| ·Replace Parameter with Methods(以函数取代参数) | 第20-21页 |
| ·Introduce Parameter Object(引入参数对象) | 第21-22页 |
| ·散弹式修改(SHOTGUN SURGERY) | 第22-23页 |
| ·发散式变化(DIVERGENT CHANGE) | 第23页 |
| ·依恋情结(FEATURE ENVY) | 第23页 |
| ·数据泥团(DATA CLUMPS) | 第23页 |
| ·基本类型偏执(PRIMITIVE OBSESSION) | 第23-24页 |
| ·总结 | 第24-25页 |
| 第三章 基于接口扩展的重构方法 | 第25-42页 |
| ·接口的定义 | 第25页 |
| ·基于接口扩展的重构方法主体思想 | 第25-31页 |
| ·基于接口扩展重构方法的具体应用 | 第31-42页 |
| ·引入参数对象(Introduce Parameter Object) | 第31-32页 |
| ·以工厂函数取代构造函数(Replace Constructor With Factory Method) | 第32页 |
| ·接口向下封装(Interface Encapsulate Downcast) | 第32-33页 |
| ·替换算法(Substitute Algorithm) | 第33页 |
| ·接口提取(Extract Interface) | 第33页 |
| ·双重观察对象(Duplicate Observed Data) | 第33-35页 |
| ·子类提取(Extract SubClass) | 第35-36页 |
| ·消除耦合的消息链(Remove Coherent Message Chains) | 第36-37页 |
| ·消除冗余类(Remove Lazy Class) | 第37-38页 |
| ·移除中介入(Remove Middle Man) | 第38-39页 |
| ·移除不完整的类库(Remove Incomplete Library Class) | 第39页 |
| ·以类来替代类别码(Replace Type Code With Class) | 第39-42页 |
| 第四章 基于接口扩展的重构方法在现有系统中的应用实例 | 第42-51页 |
| ·EMAN系统简介 | 第42-45页 |
| ·系统现状 | 第42页 |
| ·持续集成环境 | 第42-44页 |
| ·安全网的搭建 | 第44-45页 |
| ·典型案例 | 第45-51页 |
| ·无法在测试环境中创建被测对象 | 第46页 |
| ·无法在测试环境中运行被测方法 | 第46-47页 |
| ·不恰当的对象获取方式 | 第47-48页 |
| ·对象依赖关系复杂 | 第48-49页 |
| ·数据缺乏对象封装 | 第49-51页 |
| 第五章 实验与性能分析 | 第51-54页 |
| ·时间效率的提升 | 第51-52页 |
| ·功能扩展效率的提升 | 第52-53页 |
| ·实验总结 | 第53-54页 |
| 第六章 总结与展望 | 第54-55页 |
| 致谢 | 第55-56页 |
| 参考文献 | 第56-58页 |
| 研究生阶段发表论文目录 | 第58页 |