Кто-нибудь когда-либо видел / пытался написать шаблон локатора службы, который использует систему конфигурации в стиле Guice?
В настоящее время у меня есть проект GWT (который использует GWT-RPC), в котором используется шаблон команды, в котором мой RPC-сервлет выглядит следующим образом ...
public interface TransactionService extends RemoteService {
<T extends Response> T execute(Action<T> action);
}
В моей текущей реализации метода execute я делаю это ...
if(action instanceof SomeActionImpl){
doSomeActionImpl((SomeActionImpl)action);
}else if(action instanceof SomeActionImpl2){
doSomeActionImpl2((SomeActionImpl2)action);
}
Я хотел бы найти способ избавиться от гигантского оператора if. Мне нужен какой-то способ регистрации того, что класс ActionImpl1 должен быть делегирован другой реализации TransactioNService.
Есть идеи? Я думал просто добавить записи в HashMap, где ключ - это класс Action, а значение - это класс ServiceImpl. У меня есть ссылка на класс ServiceImpl, который я мог бы использовать Guice для получения экземпляра TransactionService.