一、Self Encapsulate Field
你直接访问一个字段,但是与字段之间的耦合关系逐渐变得笨拙。
为这个字段建立取值/设值函数,并且只以这些函数来访问字段。
间接地通过函数访问变量的好处是:1.子类可以通过复写函数来改变字段的存取路径;2.可以提供灵活的数据管理,如延迟初始化,数据值读取控制,数据值范围设置控制等。
当然直接访问字段的好处也是显而易见的,可以使代码易于阅读。
处理步骤:
1.为带处理字段,建立getter和setter
2.找出该字段的所有引用点,然后修改为访问该字段的getter或者setter函数。
3.修改该字段的访问权限为private
4.复查代码,找出所有引用点,并修改掉
5.编译,测试。
注:在构造函数中一般不使用设值函数。如果需要使用,可以统一的将所有的设值函数的调用统一放到一个初始化函数中。
二、Replace Data Value with Object
有一个数据项,需要与其他的数据或者行为一起使用才有意义。
将数据项变成对象
当你问道duliacte code和feature envy味道的时候,你也许就需要使用这个重构手法了。
重构步骤:
1.为待替换的数值新建一个类,并在新类中新建一个final的字段对应该数值。然后添加一个接受该数值为参数的构造函数。
2.将原类中该数值的类型修改为新建类。
3.修改原来该数值的取值函数,令他调用新类型的取值函数。
4.如果原类的构造函数中使用到该数值,那么我们就修改该构造函数,使他调用新类的构造函数为该数值字段赋值。
5.编译,测试。
6.查看是否需要,对新类使用change value to reference。一条规则:值对象的内容是不可修改的。
注:
1.如果不执行步骤6那么我们重构后该数值字段对于的数据类型是值类型的,他的内容是不可以修改的。如果该数值字段有setter,那么其中肯定是调用新类构造函数为该数值字段赋值的。
2.完成重构之后需要查看下各个函数的名称是否需要rename一下,比如原类中该数值的getter是否应该修改防止别人误认为返回的是新类型的对象。
分享到:
相关推荐
一种自适应无线移动自组织网络数据传输方法一种自适应无线移动自组织网络数据传输方法
SQ L Server 2000/ 2005 将数据库映射到一组操作系统文件上, 每个数据库必须至少有两个文件,一 个是用于数据 的主数据文件,它...文件的信息存放在数据库的系统表 sysf iles 中,本文主要研究主数据文件的数据组织。
内存数据库的一种数据组织方式 写的挺不错的 运用二叉树等数组结构存储数据
1968年美国唐·欧·克努特教授开创了数据结构的最初体系,他所著的《计算机程序设计技巧》第一卷《基本算法》是第一本较系统地阐述数据的逻辑结构和存储结构及其操作的著作。“数据结构”在计算机科学中是一门综合...
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术...
实验二、GIS图形数据对象的组织(一) VC++开发GIS系统 hfut
利用机器学习来更有效地分类组织图像(通俗地说,这些是人类的图像显微镜下的组织)。这些图像通常由病理学家分析,并将每张图像分配给四张中的一张可能的类。0级表示无肿瘤,1-3级表示有肿瘤,每级这些表明了一种不同...
但是我错了,当时的数据库中只有不到10条的数据并且组织结构非常单一,随后同事导入了数据(6000多条),组织结构也不是如此单一的了,我在项目中固定了三层结构肯定是错的,要一个活的组织树。 网上有很多大牛写...
在当前已有的定义中,以DAMA(国际数据管理协会)、DGI(国际数据治理研究所)、IBM数据治理委员会三家机构提出的最具权威性,因而被广泛应用,数据治理项目的范围通常都会包含:组织建设、数据安全、数据开发、数据质量、...
在计算机环境中,数据是描述地理对象的惟一形式,它是计算机可直接识别、处理、...分别从不同角度阐述了不同应用场景下的数据组织方案,并提出切实可行的数据组织与使用 流程,最后以一些典型应用案例作结,寓学于用。
探讨了网格数据处理中的数据结构组织问题, 提出了一种动态的、有较强适应性的通用流形网格数据组织结构,并以不同实例验证了所提出的数据结构在时间上的即时有效性、存储空间上的自适应性以及实现上的简单性和层次性...
GIS的技术特点及数据组织与数据结构 摘 要:叙述了gis(地理信息系统)的功能及其技术特点、数据分层,并分析了地理数据的组织 与数据结构。 关键词:gis 数据组织 数据结构 gis技术特点 中图分类号:p208 文献标识码:a ...
提出矢量数据分层组织的一种动态结构,在该结构中,单点、单字符或符号作为基元,以属性串组织基元,并分层叠置。采用区别于链式结构的动态通用串结构及c语言予以实现
IDC数据中心是一个实现信息的集中处理、存储、传输、交换和管理的物理场所,包含机房基础设施、IT基础设施、业务系统和数据等内容。机房基础设施包含供电、制冷、机柜、消防、监控等系统,保证IT设备的安全可靠运行...
华为数据管理组织实践:建立实体化的数据管理组织,虚线向公司数据管理部 汇报;同时组建了跨领域数据联合作战团队 华为已建立统一的数据分类管理框架,指导各领域进行分类管理 华为信息架构框架 华为业务战略与业界...
对研究神经网络和数据挖掘的研究者,该文献主要利用先验知识,观察数据样本的信息的良好性能。是研究复杂系统的一条重要途径。
GIS的技术特点及数据组织与数据结构 摘要:叙述了GIS(地理信息系统)的功能及其技术特点、数据分层,并分析了地理数据 的组织与数据结构。 关键词:GIS 数据组织 数据结构 GIS技术特点 GIS(地理信息系统)是基于计算机软...
根据各自的理解的不同而有不同的 表述方法:数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种 或多种特定关系的数据元素的集合。 数据结构具体指同一类数据元素中,各元素之间的相互关系,包括...
一个空间数据组织和管理的实习要求报告总结,比较有用
C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点