我正在从书EJB 3 in Action学习EJB 3.0。在会话bean的解剖结构下的部分中,提到:
客户端通过其调用bean的接口称为a 业务接口。该接口实质上定义了bean 适合通过特定访问机制访问的方法。 现在要注意的有趣事情是单个EJB这一事实 可以有多个接口。换句话说,EJB实现 类可以是多态的,意味着不同的客户端使用 不同的接口可以以完全不同的方式使用它们。
我想了解设计决策的原因,为什么允许单个EJB拥有多个接口?帮助理解这里概念的一个例子非常有用。
答案 0 :(得分:2)
原因很简单。每个接口都应该由特定类型的客户端访问。例如,假设您正在实施银行系统,并创建一个用于平衡访问的bean。在这种情况下,您可以使用两个接口。一个用于读取余额,另一个用于更改余额
public interface ReadAccountBalance
{
float getBalance ();
}
public interface WriteAccountBalance
{
void setBalance (float balance);
}
public class AccountBalanceBean implements ReadAccountBalance, WriteAccountBalance
{
...
}
现在,您可以使用仅需要帐户余额读取访问权限的客户端软件包分发ReadAccountBalance,而WriteAccountBalance仅与需要实际修改余额的客户端一起分发