2016年8月18日
摘要: 这是我最常用也是最有用的重构之一。我们对方法/类/参数的命名往往不那么合适,以至于误导阅读者对于方法/类/参数功能的理解。这会造成阅读者的主观臆断,甚至引入bug。这个重构看起来简单,但却十分重要。 public class Person { public String FN{ get ; set; 阅读全文
posted @ 2016-08-18 16:59 jgig11 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 与上移字段相反的重构是下移字段。同样,这也是一个无需多言的简单重构。 public abstract class Task { protected String _resolution; } public class BugTask extends Task{} public class Featu 阅读全文
posted @ 2016-08-18 16:58 jgig11 阅读(436) 评论(0) 推荐(0) 编辑
摘要: 重构同样非常简单,以至于人们并不认为这是一个有价值的重构。迁移方法(Move Method),顾名思义就是将方法迁移到合适的位置。在开始重构前,我们先看看一下代码: public class BankAccount { public BankAccount(int accountAge, int c 阅读全文
posted @ 2016-08-18 16:56 jgig11 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 上移方法(Pull Up Method)重构是将方法向继承链上层迁移的过程。用于一个方法被多个实现者使用时 public abstract class Vehicle { // other methods}public class Car extends Vehicle{ public void T 阅读全文
posted @ 2016-08-18 16:56 jgig11 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 我们介绍了将方法迁移到基类以供多个子类使用的上移方法重构,今天我们来看看相反的操作。重构前的代码如下: public abstract class Animal { public void Bark() { // code to bark}}public class Dog extends Anim 阅读全文
posted @ 2016-08-18 16:56 jgig11 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 我们来看看一个和上移方法十分类似的重构。我们处理的不是方法,而是字段。 public abstract class Account{}public class CheckingAccount extends Account{ private Double _minimumCheckingBalanc 阅读全文
posted @ 2016-08-18 16:56 jgig11 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 在当前业务不紧急,或者时间相对宽松情况下: 1.发现代码中存在重复的代码 2.有过大的类或者过长的方法 3.代码中存在强依赖或者是紧耦合的结构 4.代码的运算逻辑难以理解(可读性差) 5.代码中存在不清晰的描述对象特征、行为以及对象间的关系 重构可以在以后的代码维护和开发中带来意想不到好处,大家多试 阅读全文
posted @ 2016-08-18 09:12 jgig11 阅读(199) 评论(0) 推荐(0) 编辑