重构——58函数上移(Pull Up Method)

简介: 函数上移(Pull Up Method):有些函数,在各个子类中产生完全相同的结果;将该函数移至超类

函数上移(Pull Up Method)

有些函数,在各个子类中产生完全相同的结果;将该函数移至超类

一、动机

避免重复

二、做法

1、检查待提升函数,确定它们是否完全一致

2、函数签名不同的时候,先弄成一样的

3、在超类中新建一个函数,将某一个待提升函数的代码复制到其中,做适当的调整,然后编译

4、移除一个待提升的子类函数

5、编译,测试

6、逐一移除待提升的子类函数,直到只剩下超类中的函数为止。每次移除后都需要测试

7、观察该函数的调用者,看看是否可以改为使用超类类型的对象

目录
相关文章
重构——10搬移函数(Move Method)
搬移函数(Move Method):你的程序中,有个函数与其所驻类之外的另一个类进行更多的交流:调用后者,或者被后者调用。在该函数最常引用的类中建立一个有着类似行为的新函数。将就函数变成一个单纯的委托函数,或是将旧函数完全移除
3473 0
|
7月前
|
Ruby
用 Block 重构代码的几种方法
用 Block 重构代码的几种方法
重构——57字段上移(Pull Up Field)
字段上移(Pull Up Field):两个子类拥有相同的字段;将该字段移至超类
1564 0
重构——60函数下移(Push Down Method)
函数下移(Push Down Method):超类中的某个函数只与部分子类有关;将这个函数移到相关的子类中去
1546 0
重构——52隐藏函数(Hide Method)
隐藏函数(Hide Method):有一个函数,从来没有被其它任何类用到;将这个函数改为private
1319 0
重构——59构造函数本体上移(Pull Up Constructor Body)
构造函数本体上移(Pull Up Constructor Body):你在各个子类中拥有一些构造方法,它们的本体几乎完全一致;在超类中新建一个构造函数,并在子类构造函数中调用它
1614 0
重构——61字段下移(Push Down Field)
字段下移(Push Down Field):超类中某个字段只被部分子类用到;将这个字段移到需要它的子类中去
1212 0
重构——51移除设值函数(Remove Setting Method)
移除设值函数(Remove Setting Method):类中的某个字段应该在对象创建时被设值,然后就不再改变;去掉该字段的所有设值函数
1136 0
重构——49以函数取代参数(Replace Parameter with Methods)
以函数取代参数(Replace Parameter with Methods):对象调用某个参数,并将结果作为参数,传递给另一个函数,而接受该参数的函数本身也能够调用前一个函数;让参数接受者去除该项参数,并直接调用前一个参数
1678 0
重构——46令函数携带参数(Parameterize Method)
令函数携带参数(Parameterize Method):若干函数做了类似的工作,但在函数本体中却包含了不同的值;建立单一函数,以参数表达那些不同的值
1104 0

热门文章

最新文章