三、change value to reference
你从一个类衍生出很多彼此相等的实例,希望将他们替换成为同一个对象。
将这个值对象变成一个引用对象。
处理步骤:
1.使用replace constractor with factory method
2.编译,测试。
3.决定应该由什么对象来管理这些新对象的访问
4.决定是否应该预先初始化这些对象。
5.修改工厂函数,令它返回引用对象。
6.编译,测试。
四、Change Reference to Value
你有一个引用对象,很小且不可变,而且不易管理。
将它变成一个值对象。
相对于不可变的引用对象,在分布式系统和并发系统中,值对象有一个有优点----无需考虑他们的同步问题。
值对象的重要特性----值对象是不可变的,因此可以放心的以多个对象表示同一个事物。
重构步骤:
1.确保重构目标是不可以变对象,或者可以修改成不可变对象。
2.建立equals()和hashCode()函数。
hashCode()的实现技巧,可以将在equals中使用的每一个字段取他们的hashCode,然后这些hashCode进行按位异或运算。
3.编译测试。
4.考虑删除工厂函数,并将构造函数声明为public。
分享到:
相关推荐
VC++开发GIS系统 HFUT GIS图形数据对象的组织(二) 实验报告
C语言课件 数据的组织结构二 结构体应用
实验二、GIS图形数据对象的组织(一) VC++开发GIS系统 hfut
使用vector容器的二级指针进行点云数据组织,运行结果正常
C语言课件数据的组织结构二 链表及其应用.ppt
第二讲:地理信息数据组织:数据结构2013.ppt
lesson15数据的组织结构二结构体.pptx
lesson17数据的组织结构二指针概念.pptx
第二阶段通过建设数据底座、数据服务化,支撑数字化转型 华为数据管理工作建设历程 第一阶段数据管理工作达成的目标:完成数据管理体系建设并落地运行, 数据质量综合水平达到基本满意,实现数据清洁 华为数据管理...
lesson18数据的组织结构二指针与函数.pptx
数据结构 C语言版 第二版 电子书,非常适合新手使用。 早期的计算机主要用于数值计算,现在...这些数据内容存在着某种联系,只有分清楚数据的内在联系,合理地组织数据,才能对它们进行有效的处理,设计出高效的算法。
(二)数据运营关键内涵 (三)数据运营发展现状 (四)数据运营发展挑战 前言 (一)数据目录管理 (二)数据应用场景 (三)数据服务推广 (四)数据动态优化 (五)数据成本管理 (六)数据价值评估 二、数据运营主要活动 (一)组织...
数据的组织结构字符串、二维数组2022优秀文档.ppt
三、数据资产管理保障措施 (一) 战略管理 (二) 组织架构 (三) 制度体系 (四) 平台工具 (五) 长效机制 四、数据资产管理实践步骤 (一) 第一阶段:统筹规划 (二) 第二阶段:管理实施 (三) 第三阶段:稽核检查 (四) 第四...
lesson10数据的组织结构一二维数组与排序
一般认为,一个数据结构是由数据元素依据某种逻辑联系组织起来的。对数据元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,数据的存储结构是数据结构的实现形式,是其在计算机内的表示;此外讨论一...