`
drinkjava2
  • 浏览: 40850 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

顺便说一下一个老帖子关于domain object的讨论

阅读更多
顺便说一下一个老帖子:http://www.blogjava.net/GandofYan/archive/2006/05/30/48954.html关于domain object的讨论,其中的领域逻辑用E-R建模来表示是这样的:

Bid的建立需要满足3个约束条件,仅此而已。

那个贴子中有这样一句 "this.getBids().add(newBid); 在没有Hibernate/JDO这类可以实现“透明的持久化”工具出现之前,这类domain logic是无法实现的"。事实上,如果采用E-R建模,这个问题压根就不存在,至少用这个例子来说明透明持久化(再说一遍透明持久化的本质是缓存)的优点是很不恰当的,Hibernate解决了一个它自已创造出来的问题,因为E-R建模不象对象建模一样存在一对多这个概念,不存在由一方来维护关联这个问题。一对多关联的本质是一方维护着一个内存缓存表(set,list,array,bag),在运行期默认要将多方载入这个缓存,结束时将缓存清空并刷新到数据库,这是一种提前的性能优化(利用二级缓存),可能造成性能问题(不必要的加载)和增加编程复杂性。好比“高三一班加入一名新生"用E-R概念来表述就是new Student("张三").setClass("高三一班"); 而用一对多关联表述就变成了getAllStudents("高三一班").add(new Student("张三")),问题是getAllStudents和加入新生这两个逻辑是不相干的,加入新生就必须getAllStudents? 未必。
0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics