Я объявил несколько притворных клиентов.
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)) ..
Моя вторая проблема заключается в том, как я могу сказать своей фабрике, чтобы она вызывала общие методы .. на самом деле все они - интерфейсы, а не классы ... и интерфейсне может реализовать другой интерфейс ..