【发布时间】:2014-09-07 12:21:37
【问题描述】:
我正在使用命令模式将逻辑封装在“命令”对象中。我目前有两种类型的命令接口:
public interface ObjectCommand
{
public void execute(Object object);
}
还有一个让execute方法返回一些东西的方法:
public interface ObjectToArrayCommand
{
public Object[] execute(Object object);
}
我想知道是否可以将这两个不同的接口组合成一个接口,或者使用泛型和/或继承共享同一个超类接口,例如:
public interface Command<T,U>
{
public U execute(T t);
}
这个方案的问题是我不能将参数“U”设为“void/no object”。还有其他方法吗?
我知道我可以使用子类来提供更具体的参数,比如“Object”可以在子类中变成“String”并且它仍然可以编译。但同样,“对象”不能变成“无效”。
我想将这两个组合成一个接口的原因是因为如果每个命令都实现相同的接口而不是同时使用两种(或更多)类型的命令,它会更容易(从概念上讲)。
【问题讨论】:
标签: java generics inheritance interface command-pattern