首页 > 解决方案 > 迭代实现接口的类列表的设计模式

问题描述

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

谢谢

标签: listdesign-patternschain

解决方案


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

@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 个跟踪。


推荐阅读