最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
EJB 最佳实践:改进远程对象设计-JSP教程,面向对象/设计
时间:2008-01-12 编辑:简简单单 来源:一聚教程网
如果您开发过许多 EJB 组件,那么您很清楚远程对象设计的难点。分布 EJB 组件的核心是能够将 bean 的实现(由 Bean 类表示)与其接口(由远程或本地接口表示)分开。接口是公开给客户机的,并且通常用在与实际的实现类不同的 JVM 中。这意味着在代码这一级它们彼此之间很少有依赖关系;又意味着,接口中可能有一些不在实现中的方法,反之亦然。例如,实现类的实用程序方法不必放在远程接口上。
警告:不要将这种模式与实体 bean 一起使用!
业务接口模式仅适用于会话 bean 和消息驱动的 bean;该模式不适用于实体 bean,它永远都不应该直接公开给应用层。事实上,业务接口模式在 EJB 2.0 实体 bean 中会停止工作,因为这些类被声明为 abstract,所以不能被选中。
到目前为止,没有什么是听起来不可管理的,但您要认识到有时方法中的不匹配是无意的,这时情况就会有所变化。在部署 bean 时,您会认识到需要一个新方法,此时,很自然地就会发生这种情况。将方法添加到了 bean 实现类中,但随后忘记将它添加到远程接口。现在您已经添加了所必需的功能,但还没有办法让远程用户真正访问它。这时就需引入业务接口(Business Interface)模式。
注:业务接口模式不是避免远程对象设计中不匹配的方法的唯一方法。请阅读补充文章“业务接口模式的替代方法”以学习其它解决方案。
业务接口模式
首先,需要编写一个定义所有业务方法的接口。这非常象远程接口,但不具备 EJB 语义。清单 1 显示了 Library 对象的一个简单的业务接口。
清单 1. Library 业务接口
package com.ibm.library;
import com.ibm.library.exceptions.NoSuchBookException;
import java.util.List;
public interface ILibrary {
public List getBooks();
public List getBooks(String category);
public Book getBook(String isbn)
-
下一个: 构建可扩展的体系架构 (续)-zt(2)
相关文章
- SpringBoot测试配置属性与web启动环境解析 10-24
- vue中将el-switch值true、false改为number类型的1和0解析 10-24
- Vue中的路由配置项meta使用解读 10-24
- SpringBoot自定义bean绑定解析 10-24
- SpringBoot常用计量与bean属性校验和进制数据转换规则解析 10-24
- 工厂方法在Spring框架中的运用介绍 10-24