代码的坏味道之二十 :Data Class(纯稚的数据类)
2013-05-03 09:28
816 查看
所谓Data Class是指:它们拥有一些值域(fields),以及用于访问(读写〕这些值域的函数,除此之外一无长物。这样的classes只是一种「不会说话的数据容器」,它们几乎一定被其他classes过份细琐地操控着。这些classes早期可能拥有public值域,果真如此你应该在别人注意到它们之前,立刻运用Encapsulate Field
(封装值域)将它们封装起来。如果这些classes内含容器类的值域(collection fields),你应该 检査它们是不是得到了恰当的封装;如果没有,就运用 Encapsulate Collection(封装群集) 把它们封装起来。对于那些不该被其他classes修改的值域,请运用 Remove Setting
Method(移除设置函数)。
然后,找出这些「取值/设值」函数(getting and setting methods)被其他classes运用的地点。尝试以Move Method(搬移函数) 把那些调用行为搬移到Data Class来。如果无法搬移整个函数,就运用 Extract Method(提炼函数) 产生一个可被搬移的函数。不久之后你就可以运用Hide Method
(隐藏某个函数)把这些「取值/设值」函数隐藏起来了。
Data Class就像小孩子。作为一个起点很好,但若要让它们像「成年(成熟)」的对象那样参与整个系统的工作,它们就必须承担一定责任。
(封装值域)将它们封装起来。如果这些classes内含容器类的值域(collection fields),你应该 检査它们是不是得到了恰当的封装;如果没有,就运用 Encapsulate Collection(封装群集) 把它们封装起来。对于那些不该被其他classes修改的值域,请运用 Remove Setting
Method(移除设置函数)。
然后,找出这些「取值/设值」函数(getting and setting methods)被其他classes运用的地点。尝试以Move Method(搬移函数) 把那些调用行为搬移到Data Class来。如果无法搬移整个函数,就运用 Extract Method(提炼函数) 产生一个可被搬移的函数。不久之后你就可以运用Hide Method
(隐藏某个函数)把这些「取值/设值」函数隐藏起来了。
Data Class就像小孩子。作为一个起点很好,但若要让它们像「成年(成熟)」的对象那样参与整个系统的工作,它们就必须承担一定责任。
相关文章推荐
- 转:代码的坏味道之二十 :Data Class(纯稚的数据类)或POJO
- 代码坏的味道20:纯稚的数据类 (Data Class)
- 代码的坏味道03:过大的类(Large Class)
- kotlin中的数据类data class
- 3.20 Data class(纯稚的数据类)
- 代码坏的味道19:不完美的库类 (Incomplete Library Class)
- 代码的坏味道之十二 :Lazy Class(冗赘类)
- 代码的坏味道之三 :Large Class(过大类)
- 【整理】【代码的坏味道】过大类(Large Class)
- Kotlin语言学习之使用data class修饰数据类对象
- 代码坏的味道12:冗赘类(Lazy Class)
- 代码的坏味道之八 :Data Clumps(数据泥团)
- 上传文件(单文件)(FormData)(前端代码+.NET服务器端)
- vc6代码转到VS8以后的CString::m_pchData undefined 的解决办法
- php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
- An SqlServer Store Procedure DataAccess Layer Class
- 代码的坏味道02:过长函数(Long Method)
- 代码坏的味道07:依恋情结(Feature Envy)
- Spring-Data配置、代码示例和普通JDBC比较(学习笔记)
- Windows Azure Marketplace入门教学-通过代码操作DataMarket数据源