как заставить методы при декларировании симулировать клиента вручную - PullRequest
0 голосов
/ 28 января 2019

Я объявил несколько притворных клиентов.

public interface AddressClient{

  @RequestLine("GET addresses")
  public AddressResponse get();

  @RequestLine("POST /api/addresses")
  public AddressResponse add(String json);

  @RequestLine("PUT addresses")
  public AddressResponse update(String json);

  @RequestLine("DELETE /api/addresses")
  public AddressResponse delete(String json);

}

и у меня есть несколько из них, объявляющих одни и те же методы (get, add, put, post).

Я пытаюсь реализовать шаблон фабрики, чтобы связать определенный класс сконкретный симулированный клиент.Таким образом:

public Object getClient(Object obj) {

        if (checkClassType(obj, Individual.class)) {
            return individualRestClient;
        } else if (checkClassType(obj, Address.class)) {
            return addressRestClient;
        } else 
            return null;
        }
    }

    private boolean checkClassType(Object obj, Class clazz) {
        return obj.getClass().equals(clazz);
    }

Я хочу, чтобы из моего класса Factory возвращался клиент, который мне нужен, и который я смогу вызывать, получать, помещать, публиковать и удалять методы ...

Моя первая проблема заключается в том, что я не могу найти решение для возврата типа для симулированного клиента.фактически я возвращаю Object (getClient (Object obj)) ..

Моя вторая проблема заключается в том, как я могу сказать своей фабрике, чтобы она вызывала общие методы .. на самом деле все они - интерфейсы, а не классы ... и интерфейсне может реализовать другой интерфейс ..

...