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