xmuzyu
2008-07-30 19:55
WorkShiftSchedule是需要跟踪的,是要保存到数据库的,所以说是Entity.

banq
2008-07-31 11:47
关键还是设计分离的问题,要将持久化的实体和DDD的实体概念进行区分,而且DDD的实体也不是让你将所有业务逻辑都放到一个实体类中,然后将这个大实体类去保存数据库,这样做都是没有进行详细设计层面的考虑。

Evans DDD其实是分析模式和设计模式的牵手,也就是将这两者和谐统一了,对于我们初学者,只是学习Evans DDD是不够的,显然必要学习设计模式和分析模式,这两个基础踏实了,才能将DDD落实到实处,否则就是依葫芦画瓢。

关于OO与关系数据库阻抗的谈论

http://www.jdon.com/jivejdon/thread/34411.html

freebox
2008-07-31 21:43
按照仅存的一点化学知识理解,其实这像是分子是由原子构成的道理,而现在从整体上分析是要分析分子间的关系,但是实现的时候由于是由原子组成的所以还要分别实现原子。

windflaw
2008-08-04 15:51
banq:我的做法是"通过借道服务来实现",通过服务,将Entity和它的大批量子对象使用专门批量查询组件实现。例如Jdon框架就提供批量查询快速实现

可不可以理解批量查询组件对应到领域模型中的service?

banq
2008-08-05 10:07
>理解批量查询组件对应到领域模型中的service

可以

xmuzyu
2008-09-11 11:18
DDD中有说同一个模型可以有不同的实现。像楼主的这种情况就是可以采用不同的实现啊。比如你说的lazyload,当然banq老师的批量查询就是另一种实现了。

leomao10
2008-11-08 22:47
楼主的设计有问题吧? workshiftschedule给我的感觉就是DayArrange表里面的所有内容啊?

请问除了day arrange之外,workshiftschedule还有什么特别的数据么?

如果没有,那么workshiftschedule就不是一个entity,或者说不是和业务有关的entity,而是指代了Day Arrange table,这样的话, WorkShiftSchedule需要改名为DayArrangeService,对你来说Service类可以调用数据库的内容是很正常的吧: )

如果有的话,请指明是什么数据,同时,需要考虑的问题是,每次persentation layer显示的时候,是否需要这么多的数据(所以的day arrange),基本来说是不需要,那么可以考虑直接查询Day Arrange。

>>WorkShiftSchedule是需要跟踪的,是要保存到数据库的,所以说是Entity.

请详细说明什么是需要跟踪的,需要将work Shift Schedule的什么数据保存到数据库

另外,在设计程序之前,最好能够仔细审查domain model和用例

jokeway
2010-10-29 15:08
对于这个问题Banq能否直接指出实现方法呢?

代码一出,一切皆明

太多的链接跳来跳去,却没有一个实质性的结论

猜你喜欢
2Go