每次你做一小部分修改时,都不的不需要做大量的修改在很多不同的类中
某个方法似乎在另外的类的兴趣高于自己所处的类
一堆数据杂糅在一起(字段, 参数)
使用基本类型替代小对象
当程序中出现很多 switch 语句在很多地方,使用多态来进行替换
每当你为一个类增加一个子类,你不得不为另一个类增加相应的一个子类
当一个类不足与为其自身买单它就应该被删除
所有的钩子和特殊情况处理那些不需要的
一个临时变量仅仅为某种特殊情况做而定,这样的代码让人难以理解
当一个类请求调用一个对象,但是这个类又在调用其他的方法
当一个对象委托大部分功能,开发中可能会过度的使用委托模式,导致某个类中的方法大都委托给其他方法处理
当两个类过度的亲密,需要将其拆散
类的方法过度相似
当我们使用外部依赖库时
不要操作数据类,我们通过封装它的不变性
子类不想使用父类的方法
当一个方法使用过度的注释解释其中的逻辑时,说明这个方法应该被重构了。
你可以将一些代码组合起来,然后放到一个方法中
void printOwing(double amount) {
printBanner();
//print details
System.out.println ("name:" + _name);
System.out.println ("amount" + amount);
}
to
void printOwing(double amount) {
printBanner();
printDetails(amount);
}
void printDetails (double amount) {
System.out.println ("name:" + _name);
System.out.println ("amount" + amount);
}
动机
增加代码被复用的机会
* 阅读方法就像阅读一系列声明一样简单
void printOwing(double previousAmount) {
Enumeration e = _orders.elements();
double outstanding = previousAmount * 1.2;
printBanner();
// calculate outstanding
while (e.hasMoreElements()) {
Order each = (Order) e.nextElement();
outstanding += each.getAmount();
}
printDetails(outstanding);
}
to
void printOwing(double previousAmount) {
printBanner();
double outstanding = getOutstanding(previousAmount * 1.2);
printDetails(outstanding);
}
double getOutstanding(double initialValue) {
double result = initialValue;
Enumeration e = _orders.elements();
while (e.hasMoreElements()) {
Order each = (Order) e.nextElement();
result += each.getAmount();
}
return result;
}
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-89441-5.html
只要他不像那样耍赖坐滩
除了总吨位超过外