假设我想定义一个代表远程服务调用的接口.现在,对远程服务的调用通常会返回一些内容,但也可能包含输入参数.假设实现类通常只实现一种服务方法.鉴于以上信息,以下是一个糟糕的设计(它感觉不太正确):
public interface IExecutesService
{
public A executeService();
public A executeService(B inputParameter);
}
现在,假设我使用一个使用输入参数执行远程服务的类来实现此接口:
public class ServiceA implements IExecutesService
{
public String executeService()
{
//This service call should not be executed by this class
throw new IllegalStateException("This method should not be called for this class...blabla");
}
public String executeService(String inputParameter)
{
//execute some service
}
关于上述问题我有两个问题:
>在您想要提供需要不同输入参数和接口方法的返回类型的子类的情况下,是否使用通用接口(IExecutesService< A,B>)?
>我怎样才能做到更好?即我想在一个公共接口(IExecutesService)下将我的服务执行器分组;但是,实现类通常只实现其中一个方法,并且使用IllegalStateException感觉非常难看.此外,IExecutesService< A,B>中的B类型参数.对于没有任何输入参数调用服务的实现类来说,这将是多余的.对于两个不同的服务调用来说,创建两个独立的接口似乎也是过度的.