问题描述
当我有一个验证类列表,这些验证类实现了一个注入到服务中以验证请求 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 个跟踪。