31天重构指南之四:降低方法(pull down)
2009-09-16 09:32
405 查看
昨天我们讨论了利用“提升方法”重构将多个子类要用到的方法提升到父类中,今天我们来看和“提升方法”相反的重构---降低方法,下面是待重构的代码:
1:publicabstractclassAnimal
2:{
3:publicvoidBark()
4:{
5://codetobark
6:}
7:}
8:
9:publicclassDog:Animal
10:{
11:}
12:
13:publicclassCat:Animal
14:{
15:}
如代码所示,我们有一个带有Bark方法的Animal基类,还有两个实现了Animal的子类Dog和Cat,但在Cat类中我们却不需要Bark方法,只有在Dog类中需要,所以我们将Bark方法降低到Dog类中。
另外,现在也是一个判断是否将Animal转换为接口的机会,如果重构后Animal中没有其它的方法了,就可以将Animal转化为一个接口,否则不用转换。下面是重构后的代码:
1:publicabstractclassAnimal
2:{
3:}
4:
5:publicclassDog:Animal
6:{
7:publicvoidBark()
8:{
9://codetobark
10:}
11:}
12:
13:publicclassCat:Animal
14:{
15:}
原文链接:http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/04/refactoring-day-4-push-down-method.aspx
相关文章推荐
- 31天重构指南之十:提取方法
- 31天重构指南之二:移动方法
- 31天重构学习笔记4. 降低方法
- 31天重构指南之十三:提取方法对象
- 31天重构指南之三: 提升方法(pull up )
- 31天重构学习笔记4. 降低方法
- 31天重构学习笔记4. 降低方法
- 31天重构指南之六:降低字段
- 31天重构学习笔记4. 降低方法
- 31天重构指南之二十二:分解方法
- 31天重构指南之二十八:为布尔方法命名
- 31天重构学习笔记22. 分解方法
- 31天重构学习笔记13. 提取方法对象
- 31天重构指南之十九:提取工厂类
- 31天重构学习笔记2. 移动方法
- 31天重构学习笔记10. 提取方法
- 《31天重构》2:移动方法
- 31天重构学习笔记2. 移动方法
- 31天重构学习笔记7. 重命名(方法,类,参数)
- 31天重构学习笔记10. 提取方法