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

搬移字段(Move Field)

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

一、动机

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

二、做法

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

2、编译,测试

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

4、编译目标类

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

6、删除源字段

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

8、编译,测试

时间: 2024-09-20 20:50:30

重构——11搬移字段(Move Field)的相关文章

重构——10搬移函数(Move Method)

搬移函数(Move Method) 你的程序中,有个函数与其所驻类之外的另一个类进行更多的交流:调用后者,或者被后者调用.在该函数最常引用的类中建立一个有着类似行为的新函数.将就函数变成一个单纯的委托函数,或是将旧函数完全移除 一.动机 减少类之间的耦合,是系统中的类更简单,更干净利落的完成系统交付的任务 二.做法 1.检查源类中被原函数所使用的一切特性,考虑它们是否也应该被搬移.考虑是否要将使用相同特性的函数一并搬移 2.检查源类的超类和子类,看看是否有该函数的其他声明 3.在目标类中声明这个

重构 对象之间搬移特性

Move Method 如果一个类中的方法与另一个类有很多的交流,那么我们就在另一个类中建立一个有类似功能的新函数,将旧函数变成一个单纯的Delegating Method, 或是将旧函数移除. Move Field  状况:你的class中的field被另一个class更多的用到.那么在另一个class里建立new field,修改旧的field. Extract Class 状况:一个类做了两个类做的事,那么建立一个新Class,将相关的Field和Method从旧Class移到新Class

PHP 杂谈《重构-改善既有代码的设计》之二 对象之间搬移特性_php技巧

思维导图 索引: Ø Move Method(搬移函数) Ø Move Field (搬移值域) Ø Extract Class (提炼类) Ø Inline Class (将类内联化,就是把当前的类合并到其他类中) Ø Hide Delegate (隐藏委托关系) Ø Remove Middle Man ( 移除中间人) Ø Introduce Foreign Method (引入外加函数) Ø Introduce Local Extension (引入本地扩展)    介绍    承接上文P

在Delphi中实现对目录拷贝、删除和搬移的操作

笔者在工作中遇到了需要对目录进行拷贝.删除和搬移的需求,Delphi本身提供了一些目录操作函数,但只是针对空目录而言,对目录下带有子目录的情况,更是无能为力. 利用Win32 API函数和结构,以及递归的程序设计思想,笔者实现了对任意目录进行拷贝.删除和搬移的功能(分别相当于DOS中的XCopy.DelTree和Move命令).以下分别给出了实现代码: 1.拷贝目录 为了能拷贝目录下带有子目录的情况,先定义一个辅助的拷贝函数,它是递归执行的,直到把目录下的所有文件和子目录都拷贝完. 1.1拷贝目

清理Win7系统盘把用户文件夹搬移

由于一些新电脑在进行磁盘分区时,留给系统盘的空间不够大,并且随着日常电脑使用,软件不断安装数据信息不断写入系统盘空间变得吃紧,不但影响系统响应速度也影响整体效能,因此我们可以把用户文件夹从Win7系统盘搬移到其他磁盘中去,给Win7系统盘留下足够的空间,这也是Win7优化经常使用的技巧之一.在上一篇文章中,我们和大家分享了如何在安装Win7系统的过程中实现用户文件夹的搬移操作,但很多朋友遇上这个问题时却是在Win7系统安装后使用过程中出现的,这个时候我们仍然可以通过操作来清理Win7系统盘,以下

清理Windows 7系统盘把用户文件夹搬移

由于一些新电脑在进行磁盘分区时,留给系统盘的空间不够大,并且随着日常电脑使用,软件不断安装数据信息不断写入系统盘空间变得吃紧,不但影响系统响应速度也影响整体效能,因此我们可以把用户文件夹从Win7系统盘搬移到其他磁盘中去,给Win7系统盘留下足够的空间,这也是Win7优化经常使用的技巧之一.在上一篇文章中,我们和大家分享了如何在安装Win7系统的过程中实现用户文件夹的搬移操作,但很多朋友遇上这个问题时却是在Win7系统安装后使用过程中出现的,这个时候我们仍然可以通过操作来清理Win7系统盘,以下

重构——18自封装字段(Self Encapsulate Field)

自封装字段(Self Encapsulate Field) 你直接访问一个字段,但与字段之间的耦合关系逐渐变得笨拙:为这个字段建立取值/设置函数,并且只以这些函数来访问字段 一.动机 如果你想访问超类中的一个字段,却又想在子类中将对这个字段的访问改为一个计算后的值,这就是该用Self Encapsulate Field的时候 二.做法 1.为待封装的字段建立取值/设值函数 2.找出该字段所有的引用点,将它们全部改为调用取值/设值函数 3.将该字段声明为private 4.复查,确保找出所有的引用

用鼠标搬移图片

代码重构(二):类重构规则

在上篇博客<代码重构(一):函数重构规则(Swift版)>中,详细的介绍了函数的重构规则,其中主要包括:Extract Method, Inline Method, Inline Temp, Replace Temp with Query, Introduce Explaining Variable, Split Temporary Variable, Remove Assignments to Parameters, Replace Method with Method Object等.关于