Шаблон проектирования для фильтрации элементов - PullRequest
0 голосов
/ 26 августа 2011

Я хотел бы знать, существует ли какой-либо шаблон проектирования для фильтрации элементов на основе некоторых критериев (например, их UUIDS). Я оказался в своем коде с такими вещами:

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

Например, в моем коде я фильтрую некоторые элементы по их идентификатору, используя карту:

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

Проблема в том, что этот вид кода везде в программе. Я хотел бы знать, может ли шаблон проектирования помочь мне и дать несколько подсказок / примеров.

Спасибо !!

Ответы [ 2 ]

3 голосов
/ 26 августа 2011

Вы можете использовать CollectionUtils из apache commons -collections .Что-то вроде:

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

Внутренне, он, скорее всего, просто перебирает коллекцию и выполняет предикат, но сохраняет ваш основной код.

1 голос
/ 26 августа 2011

Intercepting-filter - это один шаблон, широко используемый с j2ee для фильтрации запросов / ответов. Вы можете реализовать что-то похожее на это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...