list - 迭代实现接口的类列表的设计模式
问题描述
当我有一个验证类列表实现注入到服务中以验证请求 Object 的接口时,如果我遍历此列表并调用每个方法的验证方法,这是什么类型的 o 模式?所有的验证类都会验证一些东西
- 是某种连锁模式吗?
谢谢
解决方案
没有。假设你有一个班级委员会
@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 个跟踪。
推荐阅读
- java - Spring Security:.oauth2Client(withDefaults()) 的目的;在 HttpSecurity
- reactjs - 处理请求时发生未处理的异常。ASPNETcore 和反应
- hash - 使用蛮力从哈希值中确定原始输入数据
- swift - 是否可以为 macOS UNNotification 设置默认警报样式?
- c# - 为什么在运行时使用动态抛出异常?
- javascript - 为什么这个正则表达式返回字符而不是换行符
- ruby - 如何从 IP 范围/子网中获取随机 IP?
- php - 在PHP中将地理坐标系(经度,纬度)转换为国家(X,Y)的二维地图投影
- sql - SQL 将 Where 子句引入新列
- c - 方法 g_input_stream_read_all() 被阻塞