ivaneeo's blog

自由的力量,自由的生活。

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
动机(Motivation)
在许多系统中,你都可以对对象做一个有用的分类:reference object和value objects。前者就像[客户]、[帐户]这样的东西,每个对象都代表真实世界中的一个实物,你可以直接以相等操作符(==,用来检验同一性, identity)检查两个对象是否相等。后者则是像[日期]、[钱]这样的东西,它们完全由其所含的数据值来定义,你并不在意副本的存在;系统中或许存 在成百上千个内容为“1/1/2000”的[日期]对象。当然,你也需要知道两个value objects是否相等,所以你需要覆写equals()(以及hashCode())。


要在reference object和value object之间做选择有时并不容易。有时侯,你会从一个简单的value object开始,在其中保存少量不可修改的数据。而后,你可能会希望给这个对象加入一些可修改数据,并确保对任何一个对象的修改都能影响到所有引用此一对象的地方。这时候你就需要将这个对象变成一个reference object。
posted on 2005-09-01 10:37 ivaneeo 阅读(169) 评论(0)  编辑  收藏 所属分类: refactoring-从地狱中重生

只有注册用户登录后才能发表评论。


网站导航: