重构4-Push Down Method(方法下移)
2016-08-18 16:56
399 查看
我们介绍了将方法迁移到基类以供多个子类使用的上移方法重构,今天我们来看看相反的操作。重构前的代码如下:
这里的基类有一个Bark方法。或许我们的猫咪们一时半会也没法学会汪汪叫(bark),因此Cat类中不再需要这个功能了。尽管基类不需要这个方法,但在显式处理Dog类时也许还需要,因此我们将Bark方法“下移”到Dog类中。这时,有必要评估Animal基类中是否还有其他行为。如果没有,则是一个将Animal抽象类转换成接口的好时机。因为契约中不需要任何代码,可以认为是一个标记接口。
来自为知笔记(Wiz)
public abstract class Animal { public void Bark() { // code to bark } } public class Dog extends Animal{}
public class Cat extends Animal{}
这里的基类有一个Bark方法。或许我们的猫咪们一时半会也没法学会汪汪叫(bark),因此Cat类中不再需要这个功能了。尽管基类不需要这个方法,但在显式处理Dog类时也许还需要,因此我们将Bark方法“下移”到Dog类中。这时,有必要评估Animal基类中是否还有其他行为。如果没有,则是一个将Animal抽象类转换成接口的好时机。因为契约中不需要任何代码,可以认为是一个标记接口。
public abstract class Animal {} public class Dog extends Animal{
public void Bark() { // code to bark } } public class Cat:Animal{}
来自为知笔记(Wiz)
相关文章推荐
- 第4篇 下移方法 (push down method)
- 重构手法60:push down Method (函数下移)
- 重构第4天:降低方法(Push Down Method)
- 重构之Pull up Method 与Push Down Method
- 重构6-Push Down Field(字段下移)
- 重构之Pull up Method 与Push Down Method
- 重构手法61:push down field (字段下移)
- 处理概括关系之四 :Push Down Method(函数下移)
- 重构之Pull Up Field ,Push Down Field 与Rename(method,class,parameter)笔记
- 步步为营 .NET 代码重构学习笔记 三、内联方法(Inline Method)
- 步步为营 .NET 代码重构学习笔记 三、内联方法(Inline Method)
- MySQL Index Condition Pushdown(ICP)性能优化方法实例
- 重构第28 天 重命名bool方法(Rename boolean method)
- 重构13天 抽取方法对象(Extract Method Object)
- 重构第6天:降低字段(Push Down Field)
- 重构22-Break Method(重构方法)
- uitableview push返回后自动下移的解决方法
- Refactoring Day 4 : Push Down Method
- Method对象帮手 - 把更多的类方法重构
- 重构心得1: 整理Method(方法)位置