美文网首页
第8章 重新组织数据

第8章 重新组织数据

作者: 后来丶_a24d | 来源:发表于2020-03-16 16:50 被阅读0次

目录

  • SelfEncapsulateField(自封装字段)
  • ReplaceDataValuewithObject(以对象取代数据值)
  • ChangeValuetoReference(将值对象改为引用对象)
  • ChangeReferencetoValue(将引用对象改为值对象)
  • ReplaceArraywithObject(以对象取代数组)
  • ChangeUnidirectionalAssociationtoBidirectional(将单向关联改为双向关联)
  • ChangeBidirectionalAssociationtoUnidirectional(将双向关联改为单向关联)
  • EncapsulateCollection(封装集合)
  • ReplaceRecordwithDataClass(以数据类取代记录)
  • ReplaceTypeCodewithClass(以类取代类型码)
  • ReplaceSubclasswithFields(以字段取代子类)

重新组织数据

自封装字段

  • 直接访问一个字段,会导致字段之间的的耦合关系过于笨拙。为字段建立取值/设值函数,并且只以这些函数来访问字段

以对象取代数据值

  • 当数据开始变得复杂,操作数据的操作开始变多,就会变成这样
  • 为替代数值新建一个类,在其中声明一个final字段,其类型和源类中的替换数据类型一样。然后在新类中加入这个字段的取值函数,再加上一个此字段的构造函数

将值对象改为引用对象

  • 从一个类衍生出许多彼此相等的实例,希望将它们替换为同一个对象。将这个值对象变成引用对象。
  • 对任何一个对象的修改都能影响到所有引用此一对象的地方。这时候需要将对象变成一个引用对象。

将引用对象改为值对象

  • 有一个引用对象,很小且不变,而且不易管理。将它变成一个值对象。

以对象取代数组

  • 数组应该是用来组织容纳一组相似的对象。如果数组里容纳的对象的意义不同,那么会给带来很臭的味道
  • 数组的各个元素各自代表的意义不同。以对象替换数组,对于数组中的每个元素,以一个字段来表示

将单向关联改为双向关联

  • 被引用类需要得到其引用者以便进行某些处理。这时候就加入了反向指针

将双向关联改为单向关联

  • 大量双向连接很容易造成“僵尸对象”;此外双向关联也迫使连个类之间有了依赖。

封装集合

  • 让返回集合的函数返回该集合的一个只读副本,并在这个类中提供添加/移除集合元素的函数

以数据类取代记录

  • 总有可能遇到记录格式,那么就把记录转换位类

以类取代类型码

  • 类似 枚举取代Int数值这样的

以字段取代子类

  • 建立子类的目的,是为了增加新特性或变化其行为,子类中只有常量函数,实在没有足够的存在价值。
  • 在超类中实现所有常量函数,令它们返回相应的字段,然后将函数从子类中删掉。

参考文章

相关文章

  • 第8章 重新组织数据

    目录 SelfEncapsulateField(自封装字段) ReplaceDataValuewithObject...

  • 重新组织数据

    0. 本章内容导图 本章介绍的是如何更好地处理数据的重构手法。 1. 重构手法 1.1 自封装字段 概要:你直接访...

  • 重新组织数据

    重新组织数据 Self Encapsulate Field对于属性的访问采用访问函数的形式。通常这不是必须的,我们...

  • 《重构》- 重新组织数据

    一. Self Encapsulate Field(自封装字段) 介绍 场景你直接访问一个字段,但与字段之间的耦合...

  • 重构——重新组织数据

    1 Self Encapsulate Field(自封装字段) 直接访问一个字段,会导致字段之间的的耦合关系过于笨...

  • 第六章重新组织函数

    目录 第6章 重新组织函数 ExtractMethod(提炼函数) InlineMethod(内联函数) Inli...

  • 容器类型-列表和元祖

    一 概要 二.数据收纳盒 三 列表和元祖的创建 四 列表重新组织

  • 《重构》读书笔记 第八章

    重新组织数据 8.1 Self Encapsulate Field (自封装字段) 为字段建立取值/设值函数,并且...

  • 重构手法--重新组织数据

    1、自封装值域 在对象内部,不直接访问自己的私有属性,而通过get/set方法访问 2、以对象取代数据值 如果某个...

  • 003-重新组织数据

    重新组织数据 1. Self Encapsulate Field(自封装字段) Q:你直接访问一个字段,但与字段之...

网友评论

      本文标题:第8章 重新组织数据

      本文链接:https://www.haomeiwen.com/subject/vurnehtx.html