为什么允许单个EJB会话bean具有多个接口?

时间:2014-05-31 05:50:29

标签: java ejb ejb-3.0 design-decisions

我正在从书EJB 3 in Action学习EJB 3.0。在会话bean的解剖结构下的部分中,提到:

  

客户端通过其调用bean的接口称为a   业务接口。该接口实质上定义了bean   适合通过特定访问机制访问的方法。   现在要注意的有趣事情是单个EJB这一事实   可以有多个接口。换句话说,EJB实现   类可以是多态的,意味着不同的客户端使用   不同的接口可以以完全不同的方式使用它们。

我想了解设计决策的原因,为什么允许单个EJB拥有多个接口?帮助理解这里概念的一个例子非常有用。

1 个答案:

答案 0 :(得分:2)

原因很简单。每个接口都应该由特定类型的客户端访问。例如,假设您正在实施银行系统,并创建一个用于平衡访问的bean。在这种情况下,您可以使用两个接口。一个用于读取余额,另一个用于更改余额

public interface ReadAccountBalance
{
    float getBalance ();
}

public interface WriteAccountBalance
{
    void setBalance (float balance);
}

public class AccountBalanceBean implements ReadAccountBalance, WriteAccountBalance
{
    ...
}

现在,您可以使用仅需要帐户余额读取访问权限的客户端软件包分发ReadAccountBalance,而WriteAccountBalance仅与需要实际修改余额的客户端一起分发