`

重新组织数据(一)

 
阅读更多

一、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是否应该修改防止别人误认为返回的是新类型的对象。

 

 

 

 

 

分享到:
评论

相关推荐

    TZAIF1002-2020互联网金融组织数据分类分级指南

    TZAIF1002-2020互联网金融组织数据分类分级指南是由浙江互联网金融联合会发布的一份标准指南,旨在规范互联网金融行业中的数据分类和分级工作。该指南于2020年7月24日发布,2020年9月1日实施。 本指南的主要目的是...

    一种自适应无线移动自组织网络数据传输方法

    ### 一种自适应无线移动自组织网络数据传输方法 #### 概述 本文提出了一种针对无线移动自组织网络(MANET)的自适应数据传输方法。该方法旨在解决网络节点密度变化对数据传输效率的影响问题。随着节点密度的变化,...

    石油数据组织与分析期末考试范围(精确)

    - **层次模型**: 使用树形结构来组织数据,每个节点代表一个实体,而节点之间的连接则表示实体之间的关系。 - **网状模型**: 允许两个以上的实体之间存在多对多的关系,数据结构更为复杂,适用于表达复杂的关系。 - ...

    RTX组织机构数据导出工具

    在日常管理中,有时我们需要对RTX的组织架构数据进行整理和分析,这时,一个高效的“RTX组织机构数据导出工具”就显得尤为重要。这款工具能够帮助我们快速导出RTX中的组织结构和个人详细信息,并将其转化为易于处理...

    数据结构课程设计——学生会组织

    数据结构课程设计——学生会组织 在本设计中,我们将实现一个学生会组织机构管理系统,使用 C++ 语言描述。该系统将实现以下功能:插入、删除、修改和查询学生会成员信息,并将其组织机构表示为树形结构。 知识点 ...

    商业银行数据治理组织架构和岗位职责 (2).docx

    通过上述详细的组织架构和岗位职责的设置,商业银行能够建立起一个高效、规范的数据治理体系,从而更好地应对日益增长的数据需求和挑战。这不仅有助于提升银行的数据管理能力,还能增强其核心竞争力。

    SAP组织结构和主数据.pptx

    在 SAP 系统中,集团是商业和组织上的单位,有一套独立和完整的数据,主记录和表集。集团是 SAP 系统中最高级别的组织单元,由三个数字代码唯一定义公司。集团下可以包含多个公司代码,每个公司代码对应一个独立的...

    内存数据库的一种数据组织方式

    内存数据库的一种数据组织方式 写的挺不错的 运用二叉树等数组结构存储数据

    osgEarth数据加载及组织解析

    本篇文章将深入探讨osgEarth的数据加载与组织解析过程,帮助你理解如何有效地利用这一工具。 首先,我们来了解什么是数据加载。在osgEarth中,数据加载涉及到将各种地理数据格式(如TIFF、KML、SHP等)转化为场景中...

    矢量数据的一种分层动态组织方法

    在计算机科学和地理信息系统(GIS)领域,矢量数据的组织和管理是一个基础且核心的问题。矢量数据通过点、线、面等几何元素来表示地理实体,它能够精确地表达空间位置和属性信息。矢量数据的分层动态组织方法是解决...

    【重磅、更新!】1990-2022上市公司组织韧性数据大合集,两大权威指标,赠原始数据!

    韧性相关研究是近年来研究的热点方向之一,将组织韧性与企业创新、冗余管理等领域问题 的实证研究更是如日中天。附件内为1990-2022上市公司组织韧性数据大合集,包 括参考权威文献构建的衡量企业组织韧性的三大测度...

    商业银行数据治理组织架构和岗位职责.docx

    ### 商业银行数据治理组织架构和岗位职责 #### 一、背景与意义 随着信息技术的快速发展,数据已经成为商业银行的核心资产之一。有效的数据治理不仅能够提升银行的运营效率,还能够帮助银行更好地应对监管要求,...

    基于元数据的信息组织与基于本体论的知识组织

    为了弥补这一缺陷,不同领域的组织机构逐渐建立了各自的专业元数据标准,这些标准通常有两种形成方式:一种是在DC元数据的基础上进行调整和扩展;另一种则是完全自主研发一套新的元数据标准。 #### 二、基于元数据...

    数据结构是计算机科学中的一个重要概念,它涉及到数据的组织、管理和存取方式 良好的数据结构设计可以极大地影响程序的效率和性能 以下

    数据结构数据结构是计算机科学中的一个重要概念,它涉及到数据的组织、管理和存取方式。良好的数据结构设计可以极大地影响程序的效率和性能。以下是关于数据结构的一些基本介绍,包括定义、分类以及常见的数据结构...

    实验二、GIS图形数据对象的组织(一)

    实验二、GIS图形数据对象的组织(一) VC++开发GIS系统 hfut

    osgEarth数据组织.zip_osg_osg 组织_osgearth_osgearth数据

    osgEarth是OSG的一个扩展,它提供了一个接口来利用各种地理空间数据,包括遥感图像、地形数据、矢量数据等,将地球模型与3D场景紧密结合。这个压缩包文件“osgEarth数据组织.zip”包含的内容是关于如何在OSGEarth中...

Global site tag (gtag.js) - Google Analytics