实体Bean设计,ORM和DAO的问题

04-10-22 liu8jin
banq,各位前辈:

你好!

在设计时,我将实体bean理解为域模型。但从面向对象的角度来说,域模型是应该有行为的。例如:User为一个实体bean,那么从域模型的角度来说,changePassword()的行为应放到User bean中,但在实际应用中,一般是将changePassword()放入SessionBean中。有些不解。

如果不用EJB,User为一个普通java类,那么changePassword(),应放在何处?

另外,orm和DAO一起使用合适么?我觉得如果有ORM的话,一般会建立一个domain model层,而业务层直接操作domain model就可以了,其中不需要dao,而看到很多例子是业务层+dao+domain ,我觉得DAO的本意是将业务逻辑与存储逻辑分开。但如果有ORM,那么存储逻辑已经由ORM层封装了,再加上DAO实在是没用。对EJB其实也是如此,SessionBean+EntityBean就够了。没必要用SessionBean+DAO+EntityBean,但很多例子都是用SessionBean+DAO+EntityBean,很是困惑。请各位多多指教!

banq
2004-10-25 13:47
第一个问题已经在这里回答你了:

http://www.jdon.com/jive/thread.jsp?forum=46&thread=17193

使用SessionBean+DAO+EntityBean是为了消除实体Bean的事务机制,提高性能。

猜你喜欢