迭代实现接口的类列表的设计模式

问题描述

我有一个验证类列表,这些验证类实现了一个注入到服务中以验证请求 Object 的接口,如果我遍历这个列表并调用每个验证类的方法,这是什么类型的模式?所有的验证类都验证了一些东西

  • 是某种连锁模式吗?

谢谢

解决方法

没有。假设你有一个班级委员会

@Service
public class Council {
  @Inject
  private Councillor[] council;
  public boolean getConsensus(Act purpose) {
    for(Councillor member: council) {
      if (member.vetoes(purpose)) {
        return false;
      }
    }
    return true;
  }
}

这是不是链式的,因为元素对其链式邻居不承担任何责任。这里有一个堆栈跟踪,它在循环中的每次否决调用之后返回到方法 getConsensus 的完全相同的执行。

但是连锁模式将执行从议员委托给议员,并让堆栈跟踪增长,每个议员都有一条跟踪线。如果您有 200 名议员,您的堆栈跟踪将大 200 个跟踪。