我想知道是否存在基于某些标准(例如他们的UUIDS)过滤元素的任何设计模式。我最终在我的代码中使用了这样的东西:
if(meetsSomeCriteria(thing))){
doSomething()
}
例如,在我的代码中,我使用map来过滤一些基于id的元素:
if(!mymap.containsKey(myObject.getId())){
doSomething();
mymap.put(myObject.getId(), myObject);
}
问题是程序中到处都是这种代码。我想知道一个设计模式是否可以帮助我并提供一些提示/示例。
谢谢!!
答案 0 :(得分:3)
您可以使用apache CollectionUtils中的commons -collections。类似的东西:
Collection matches = CollectionUtils.select(collection, new Predicate() {
public boolean evaluate(Object object) {
// evaluate predicate
}
});
在内部,它很可能只是遍历集合并执行谓词,但它会保存您的样板代码。
答案 1 :(得分:1)
拦截过滤器是j2ee广泛使用的一种模式,用于过滤请求/响应。你可以实现类似的东西。