重构-改善既有代码的设计

简介:
名称 动机 输入 输出
Extract Method

函数过长

不方便阅读

简短而良好的函数命名

需对局部变量进行处理

函数复写容易

阅读性增强

复用机会变大

 

Inline Method

内部代码和函数名称

一样清晰易读

一组不合理的函数

重新重构

 检查函数,确定不具有多态性;

函数被调用点

       间接性降低

 

 

名称 动机 输入 输出
Inline Temp

一个临时变量

仅被赋值一次

阻碍重构

将变量先赋值成final,

以确定是否只赋值一次

简介
Replace Temp with Query

临时变量的临时性

驱使生成长的函数。

临时变量可以被所有函数访问

将表达式替换为一个独立函数

临时变量只赋值一次

便于重构                      
Introduce Explaining Variable

复杂表达式转换为一个临时变量

易于阅读

一个final 变量 易于阅读
Split Temporary Variable

一个临时变量被赋值多次

每个变量只负责一个责任

针对每次赋值,创作一个独立,对应的临时变量 多个责任的变量,会使用户糊涂

 


            Move Method          

  检查sourceclass 关联的属性;

检查sourceclass的superclass 和subclass

targetclass 声明

如何从source正确引用 target Object;

source method   

变成委托函数

需调整对 source method 的调用,变成对target method的调用

降低耦合         
Move Field

某个field频繁被另一class用到

需确定何时在source object中使用target object

source filed ---> target

 

class 函数专一

高内聚

       
       
       
       
       
       
       
     



本文转自 randy_shandong 51CTO博客,原文链接:http://blog.51cto.com/dba10g/414923,如需转载请自行联系原作者

相关文章
|
设计模式
重构·改善既有代码的设计.03之重构手法(上)
之前的重构系列中,介绍了书中提到的重构基础,以及识别代码的坏味道。今天继续第三更,讲述那些重构手法(上)。看看哪些手法对你的项目能有所帮助......
19281 1
重构·改善既有代码的设计.03之重构手法(上)
|
设计模式 程序员 开发者
重构·改善既有代码的设计.01之入门基础
近期在看Martin Fowler著作的《重构.改善既有代码的设计》这本书,这是一本经典著作。书本封面誉为软件开发的不朽经典。书中从一个简单的案例揭示了重构的过程以及最佳实践。同时给出了重构原则,何时重构,以及重构的手法。用来改善既有代码的设计,提升软件的可维护性。
650 1
重构·改善既有代码的设计.01之入门基础
|
程序员
《重构:改善既有代码的设计》-学习笔记二(+实战解析)
《重构:改善既有代码的设计》-学习笔记二(+实战解析)
598 0
《重构:改善既有代码的设计》-学习笔记二(+实战解析)
|
设计模式 Java 程序员
《重构:改善既有代码的设计》-学习笔记一(+实战解析)
《重构:改善既有代码的设计》-学习笔记一(+实战解析)
223 0
《重构:改善既有代码的设计》-学习笔记一(+实战解析)
重构改善既有代码的设计---笔记
重构改善既有代码的设计---笔记
236 0
重构-改善既有代码的设计-简化函数调用
Rename Method 函数改名 问题函数的名称未能揭示函数的用途。方法修改函数名称。动机好的函数需要有一个清晰的函数名。
1022 0
|
程序员
重构-改善既有代码的设计--重构,第一个案例
什么是重构 在不改变代码外在行为的前提下,对代码做出修改以改进程序内部的结构简单地说就是在代码写好后改进它的设计 谁该阅读这本书 专业程序员(能够提高你的代码质量) 资深设计师和架构规划师(理解为什么需要重构,哪里需要重构) 阅读技巧 带着疑问去读: 如果你想要知道重构是什么。
1121 0
|
程序员
《重构:改善既有代码的设计》—第2章2.2节为何重构
如果没有重构,程序的设计会逐渐腐败变质。当人们只为短期目的,或是在完全理解整体设计之前,就贸然修改代码,程序将逐渐失去自己的结构,程序员越来越难通过阅读源码而理解原来的设计。
1835 0