是否有内置的Java类型来保证执行(T t)方法?

时间:2012-01-25 17:16:35

标签: java functor strategy-pattern

似乎需要像以下这样的类型无处不在,以至于它应该已经内置到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);
      }
   }
}

是否有内置类型等效或公共库等效?这个概念有名字吗?

2 个答案:

答案 0 :(得分:4)

我认为这个概念的名称是strategy pattern。实际上,您正在封装算法,这样可以更轻松地将一种策略换成另一种策略或应用多种策略。

此设计模式非常易于实现,execute方法不需要只接受特定类型的单个参数。因此,我怀疑你会发现内置的Java类型,但它是一个众所周知的设计模式。

答案 1 :(得分:2)

我最接近的是Guava的Function<F,T>

我认为标准库中没有任何内容可以完全满足您的要求。 Runnable有点接近,但没有参数。

P.S。我认为“功能”或“仿函数”正是这个概念的正确名称。