似乎需要像以下这样的类型无处不在,以至于它应该已经内置到Java中了:
public interface Executer<T> {
void execute(T object);
}
然后可以在其他类中使用它,比如在一个对象上调用一堆执行器的这个简单示例。
class Handler<T> implements Executer<T> {
List<Executer<T>> executerList;
Handler(List<Executer<T>> executer) {
this.executerList = executer;
}
void execute(T t) {
for (Executer<T> executer : this.executerList) {
executer.execute(t);
}
}
}
是否有内置类型等效或公共库等效?这个概念有名字吗?
答案 0 :(得分:4)
我认为这个概念的名称是strategy pattern。实际上,您正在封装算法,这样可以更轻松地将一种策略换成另一种策略或应用多种策略。
此设计模式非常易于实现,execute
方法不需要只接受特定类型的单个参数。因此,我怀疑你会发现内置的Java类型,但它是一个众所周知的设计模式。
答案 1 :(得分:2)
我最接近的是Guava的Function<F,T>
。
我认为标准库中没有任何内容可以完全满足您的要求。 Runnable
有点接近,但没有参数。
P.S。我认为“功能”或“仿函数”正是这个概念的正确名称。