摘要: 經(jīng)常地,你必須遍歷一個(gè)對(duì)象集合并基于一些條件(criteria)來(lái)過(guò)濾它們。JDK提供了有用的機(jī)制來(lái)排序集合,即Comparator接口。然而,JDK缺少過(guò)濾集合的機(jī)制。
這篇文章描述了一個(gè)僅由一個(gè)類和一個(gè)接口組成的簡(jiǎn)單機(jī)制,它允許你快速和靈活地過(guò)濾集合。當(dāng)搜索一個(gè)集合時(shí),該機(jī)制提供了與SQL中的select語(yǔ)句相同的功能。它的隱含的概念是,在遍歷集合和過(guò)濾集合中的對(duì)象時(shí),達(dá)到職責(zé)的分離。
這里提出的方法有下面的優(yōu)點(diǎn):
1、一個(gè)核心的過(guò)濾器組件的復(fù)用產(chǎn)生更清晰的代碼。
2、通用過(guò)濾組件的復(fù)用產(chǎn)生更免于錯(cuò)誤的代碼。
3、從過(guò)濾邏輯中分離出迭代邏輯使你任意地增加和刪除過(guò)濾器而不影響到其他代碼。
4、對(duì)于大集合和多個(gè)criteria能夠獲得性能提高。 閱讀全文
這篇文章描述了一個(gè)僅由一個(gè)類和一個(gè)接口組成的簡(jiǎn)單機(jī)制,它允許你快速和靈活地過(guò)濾集合。當(dāng)搜索一個(gè)集合時(shí),該機(jī)制提供了與SQL中的select語(yǔ)句相同的功能。它的隱含的概念是,在遍歷集合和過(guò)濾集合中的對(duì)象時(shí),達(dá)到職責(zé)的分離。
這里提出的方法有下面的優(yōu)點(diǎn):
1、一個(gè)核心的過(guò)濾器組件的復(fù)用產(chǎn)生更清晰的代碼。
2、通用過(guò)濾組件的復(fù)用產(chǎn)生更免于錯(cuò)誤的代碼。
3、從過(guò)濾邏輯中分離出迭代邏輯使你任意地增加和刪除過(guò)濾器而不影響到其他代碼。
4、對(duì)于大集合和多個(gè)criteria能夠獲得性能提高。 閱讀全文