代码的坏味道之二十 :Data Class(纯稚的数据类)

所谓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就像小孩子。作为一个起点很好,但若要让它们像「成年(成熟)」的对象那样参与整个系统的工作,它们就必须承担一定责任。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值