【问题标题】:Send namespaced data from Service to Client in Java使用 Java 将命名空间数据从服务发送到客户端
【发布时间】:2019-03-06 05:44:45
【问题描述】:

假设我有一堆数据处理器扩展相同的接口:

IProcessor.java

public interface IProcessor() {
  void processName(String name);
}

BookProcessor.java

public class BookProcessor implements IProcessor {
  @Override
  public void processName(String name){
    //Process name in book specific logic
  }
}

MagazineProcessor.java

public class MagazineProcessor implements IProcessor {
  @Override
  public void processName(String name){
    //Process name in magazine specific logic
  }
}

所有这些处理器都驻留在一个客户端中,比如MyClient,而这个客户端从服务中接收数据,比如MyService

我想实现命名空间,以便通过这个命名空间,MyClient 可以自动选择正确的处理器。为此,我在想MyService 本身应该发送命名空间数据(可能是命名空间 id)。
我的问题是如何实现这个命名空间以便MyServiceMyClient 共享它,即使MyService 不知道MyClient 中存在的处理器。

【问题讨论】:

    标签: java service namespaces client


    【解决方案1】:

    MyServiceMyClient 发送数据时,它必须提示它发送的数据类型。这样MyClient 就可以为此类数据选择合适的处理器。

    所以正确的做法是:

    在客户端和服务器之间签订合同,规定服务器可以发送什么类型的数据。然后,在客户端,您应该实现一个匹配器,它将数据类型与其处理器匹配。

    所以MyService 对客户端可以使用的数据处理器一无所知。它只知道它在发送什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-05
      • 2013-04-11
      • 2021-12-07
      • 1970-01-01
      • 1970-01-01
      • 2012-08-29
      • 2020-08-17
      相关资源
      最近更新 更多