重构——11搬移字段(Move Field)

简介: 搬移字段(Move Field):你的程序中,某个字段被其所驻类之外的另一个类更多的用到。在目标类新建一个字段,修改源字段的所有用户,令它们该用新字段

搬移字段(Move Field)

你的程序中,某个字段被其所驻类之外的另一个类更多的用到。在目标类新建一个字段,修改源字段的所有用户,令它们该用新字段

一、动机

在类之间移动状态和行为很正常

二、做法

1、如果字段的访问级别是public,使用Encapsulate Field将它封装起来

2、编译,测试

3、在目标类中建立与源字段相同的字段,并同时建立相应的设值/取值函数

4、编译目标类

5、决定如何在源对象中引用目标对象

6、删除源字段

7、将所有对源字段的引用替换为对某个目标函数的调用

8、编译,测试

目录
相关文章
重构——10搬移函数(Move Method)
搬移函数(Move Method):你的程序中,有个函数与其所驻类之外的另一个类进行更多的交流:调用后者,或者被后者调用。在该函数最常引用的类中建立一个有着类似行为的新函数。将就函数变成一个单纯的委托函数,或是将旧函数完全移除
3593 0
|
数据安全/隐私保护
CE修改器入门:查找多级指针
本关是第6关的加强版,CE 6.X 教程中的4级指针比5.X的要简单些。多级指针就像玩解谜游戏一样,谜团不只一个,盒子中还有盒子。这里面是4级指针,游戏中也有比如8级指针,12级指针等等,思路都是一样的。
647 0
CE修改器入门:查找多级指针
重构——57字段上移(Pull Up Field)
字段上移(Pull Up Field):两个子类拥有相同的字段;将该字段移至超类
1628 0
重构——29以数据类取代记录(Replace Record with Data Class)
以数据类取代记录(Replace Record with Data Class):你需要面对传统编程环境中的记录结构;为该记录创建一个“哑”数据对象
1562 0
重构——61字段下移(Push Down Field)
字段下移(Push Down Field):超类中某个字段只被部分子类用到;将这个字段移到需要它的子类中去
1242 0
重构——33以字段取代子类(Replace Subclass with Fields)
以字段取代子类(Replace Subclass with Fields):你的各个子类的唯一差别只在“返回常量数据”的函数上:修改这些函数,使他们返回超类的某个新增字段,然后销毁子类
1268 0
重构——36合并重复的条件片段(Consolidate Duplicate Conditional Fragments)
合并重复的条件片段(Consolidate Duplicate Conditional Fragments):在条件表达式的每个分支上有相同的一段代码;将这段重复的代码搬移到条件表达式之外
1211 0
重构——19以对象取代数据值(Replace Data Value with Object)
以对象取代数据值(Replace Data Value with Object):你有一个数据项,需要与其他数据和行为一起使用才有意义;将数据项变为对象
1678 0
重构——4以查询取代临时变量(Replace Temp with Query)
以查询取代临时变量(Replace Temp with Query):你的程序以一个临时变量保存某一个表达式的结果。将这个表达式提炼到一个独立函数中,将这个临时变量所有的引用点替换为对新函数的调用,此后,新函数就可以被其他函数使用
1567 0