2

考虑以下示例

@Remote
public interface RegistrationService {
    public String register();
    public void unregister(String id);
    public void heartbeat(String id);
}

@Stateless
@Remote(RegistrationService.class)
public class RegistrationServiceBean implements RegistrationService {
    /* ... */
}

我有一个界面,可以说RegistrationService。有了这个,远程客户端能够将自己注册到应用程序上。通过定期调用heartbeat(),它表示它还活着。

记录 EJB 及其接口的正确方法是什么?

例如:

界面

  1. 该接口的用户可以将自己注册到应用程序上。然后应用程序重新计算一些东西,以便在所有注册的客户端上平均分配。(这将涉及其他类的知识,例如重新计算类)
  2. 接口的用户能够注册自己并在仍然连接时通知服务器。实现使用此信息根据注册客户端的数量向底层系统发出任务(这不涉及有关其他类的知识,但是从应用程序的角度来看并不是那么精确)

班级

  1. 当客户端注册、注销或心跳过期时,RegistrationService 的此实现会在 RecalculationClass 中发出重新计算。这是必要的,因为数据必须在客户端之间均匀分布。

任何想法表示赞赏。谢谢。

斯文

4

2 回答 2

2

接口 javadoc 应该没有关于实现的信息。接口是关于什么,而不是如何

例如,实现完全忽略对接口方法的调用是有效的——即有一个空方法。

你的 javadoc 应该这样说:Notifies that the specified application is still alive. 实现选择如何处理这些信息取决于它。

于 2012-10-23T06:34:54.967 回答
0

我想说这取决于哪些信息对客户很重要。如果重新计算对用户完全不可见,则可能不需要在界面中记录它。如果客户端可以通过其他方式看到重新计算的详细信息,则必须在此处指出,以便用户知道可能发生哪些交互。如果重新计算完全是内部的并且可以在没有客户注意的情况下更改,则不需要也不应该在接口描述中。

于 2012-10-23T06:38:00.787 回答