Отправить данные пространства имен из Сервиса Клиенту в Java - PullRequest
0 голосов
/ 06 марта 2019

Предположим, у меня есть несколько процессоров данных, расширяющих один и тот же интерфейс:

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 сам должен посылать данные в пространстве имен (может быть, идентификатор пространства имен).
У меня вопрос, как мне реализовать этот именование, чтобы MyService и MyClient делились им, даже когда MyService не знает о процессорах, присутствующих в MyClient.

1 Ответ

0 голосов
/ 06 марта 2019

Когда MyService отправляет данные на MyClient, он должен предоставить подсказку о том, какой тип данных он отправляет.Так что MyClient может подобрать подходящий процессор для данных этого типа.

Таким образом, правильный подход будет:

Заключить договор между клиентом и сервером, который заявляеткакой тип данных сервер может отправить.А затем на стороне клиента вы должны реализовать средство сопоставления, которое сопоставляет тип данных с его процессором.

Так что MyService ничего не знает о обработчиках данных, которые клиент может использовать.Он просто знает, что отправляет.

...