过滤元素的设计模式

时间:2011-08-26 11:34:58

标签: java design-patterns

我想知道是否存在基于某些标准(例如他们的UUIDS)过滤元素的任何设计模式。我最终在我的代码中使用了这样的东西:

if(meetsSomeCriteria(thing))){
     doSomething()
}

例如,在我的代码中,我使用map来过滤一些基于id的元素:

if(!mymap.containsKey(myObject.getId())){
       doSomething();
       mymap.put(myObject.getId(), myObject);
   }

问题是程序中到处都是这种代码。我想知道一个设计模式是否可以帮助我并提供一些提示/示例。

谢谢!!

2 个答案:

答案 0 :(得分:3)

您可以使用apache CollectionUtils中的commons -collections。类似的东西:

Collection matches = CollectionUtils.select(collection, new Predicate() {
    public boolean evaluate(Object object) {
        // evaluate predicate
    }
});

在内部,它很可能只是遍历集合并执行谓词,但它会保存您的样板代码。

答案 1 :(得分:1)

拦截过滤器是j2ee广泛使用的一种模式,用于过滤请求/响应。你可以实现类似的东西。