代码的坏味道之八 :Data Clumps(数据泥团)
来源:互联网 发布:数据分中心 编辑:程序博客网 时间:2024/04/29 07:22
数据项(data items)就像小孩子:喜欢成群结队地待在一块儿。你常常可以在很多地方看到相同的三或四笔数据项:两个classes内的相同值域(field)、许多函数签名式(signature)中的相同参数。这些「总是绑在一起出现的数据」真应该放进属于它们自己的对象中。首先请找出这些数据的值域形式(field)出现点,运用Extract Class(提炼类)将它们提炼到一个独立对象中。然后将注意力转移到函数签名式(signature)上头,运用Introduce Parameter Object(引入参数对象)或Preserve Whole Object(保持对象完整) 为它减肥。这么做的直接好处是可以将很多参数列缩短,简化函数调用动作。是的,不必因为Data Clumps只用上新对象的一部分值域而在意,只要你以新对象取代两个(或更多)值域,你就值回票价了。
一个好的评断办法是:删掉众多数据中的一笔。其他数据有没有因而失去意义?如果它们不再有意义,这就是个明确信号:你应该为它们产生一个新对象。
缩短值域个数和参数个数,当然可以去除一些坏味道,但更重要的是:一旦拥有新对象,你就有机会让程序散发出一种芳香。得到新对象后,你就可以着手寻找Feature Envy,这可以帮你指出「可移至新class」中的种种程序行为。不必太久, 所有classes都将在它们的小小社会中充分发挥自己的生产力。
- 代码的坏味道之八 :Data Clumps(数据泥团)
- 代码的坏味道之二十 :Data Class(纯稚的数据类)
- 3.8 data clumps(数据泥团)
- 代码坏味道之过大的类
- 重构之代码的坏味道
- 代码的坏味道
- 代码的坏味道
- 代码的坏味道
- 代码的坏味道
- 代码的坏味道
- 代码的坏味道
- 代码的坏味道
- 代码的坏味道
- 代码的坏味道
- 代码的坏味道
- 代码的坏味道
- 代码的坏味道
- 代码的坏味道
- 文件上传缩略图
- C语言篇之位字段
- hdu 2062 Subset sequence 解题报告
- 人工智能
- linux rm 命令详解
- 代码的坏味道之八 :Data Clumps(数据泥团)
- android状态栏消息发送
- poj3667 Hotel (线段树--区间合并)转自网络
- spring学习笔记1--概述与spring容器的实例化
- c++强制类型转换
- getAttribute()与getParameter()的区别
- 网络工具箱
- 一个apk多个icon入口
- 漫谈兼容内核之十八:Windows的LPC机制