EJB 中的session facade模式应用

02-08-06 banq
EJB 中的session facade模式应用 发表时间: Aug 5, 2002 1:52 PM 回复

在使用EJB中,一般有很多实体Bean,那么是不是所有的客户端如JSP直接和这些实体bean操作呢。

session facade模式说:不是,所有的Jsp客户端程序和一个总的session bean交互操作,而session bean再和很多entity bean操作。

这样做,有下面的好处:
减少网络负载:不必每次客户调用启动name lookup
中心安全管理;所有关键操作都在一个session bean中,相当于中心机房。
事务跟踪的可控制;事务跟踪的过程在都在一个session bean中,容易发现 修改。
降低偶合性:客户端程序和实体bean基本失去联系,客户端变化再大或实体bean变化,都不会影响到对方。

深入描述:
http://www.javaworld.com/javaworld/jw-01-2002/jw-0111-facade.html

banq
2002-08-10 23:47
UP

Racing
2002-08-11 12:00
恩. 阅

cc
2002-08-16 09:06
很有道理,能不能把这种思路应用到MVC中呢?

页面(view)=》Action(Control)=》sessionBean(model)=》实体Bean(model)

这样得构架如何?

banq
2002-08-16 11:24
你的思路对的 ,实际我的项目应用中就是这么做的
所有Jsp都共用一个session bean ,其实这也是fascade模式
在这个sessionbean中 主要处理和其他Javabean或EJB的交互功能

这样Jsp中基本没有Java代码,同时我可以使用jsp的set property=*这个强大功能,方便表单数据录入

浆糊
2002-08-17 15:24
其实这里的session bean我感觉更多的担当的是business logic进行逻辑处理。

浆糊
2002-08-17 15:26
如果说要用MVC模式的话,Structs还是不错的。

banq
2002-08-17 17:41
我的意思是:这个session bean是代表所有的business logic的javabean来和前台jsp互动

why10k
2002-08-19 15:55
这就是STRUCTS做的事情,可以到APACHE上去看一下

cc
2003-06-01 10:51
在sessionbean中控制事务,sessionbean应该无所谓有状态或是无状态。

一般大家在sessionbean中写事务,是用自己定义的,还是用容器的required默认呢?

thinkman
2003-06-03 18:13
不管是session facade,还是client delegate,还是DAO,说白了,都是降低
耦合,便于维护和提交软件的灵活性。所以,有人说,系统的层次感越明显,系统就越灵活还是有一定道理的。呵呵

sinaID49157
2020-03-17 14:30
当年还是个孩子,哈哈哈哈