叠代器、比較器、文件過濾器
Java類庫中有為滿足不同需求而設計的不同的器,實際上就是不同的接口。最近學習了比較器、叠代器和文件過濾器這三個接口,我根據自己的理解做了一個不成熟的總結,假如有很多不準確甚至是錯誤的地方,希望大家多多賜教!
這三個接口在設計的時候,並不是只是聲明一個接口以及它裏面的方法,也在需要特定類“配合”這些接口來完成某些功能,特定類指的就是需要使用這些接口完成某項功能的類(比如Tree結構集合要按照一定規則排序而使用比較器排序,這裏Tree結構集就是我說的特定類,比較器就是它需要用的接口)。
什麽意思呢?打個不恰當的比方,這三種接口就相當於基站,而特定的類就相當於各種手機,我手機想要通過基站來通訊,不能只讓基站發送信號,你手機卻沒有接受信號的功能,所以手機需要配合基站。這三個接口和這些特定類
這裏通過File類和文件過濾器來說,File類裏有list(FilenameFilter filter)方法來接受文件過濾器的對象,File類的list(FilenameFilter filter)和文件過濾器接口中的accept(File file,String name)配合共同完成文件的過濾。同理,另外兩種接口和其特定類也是類似的(不一定是如File類和文件過濾器一樣是通過構造方法獲取接口對象的方式來完成,這裏我就不詳細說明了)。對於文件過濾,或許每次需要過濾的文件不一樣,所以才不在File類裏定義一個方法實現,不然每次有新需求都得重寫。而通過過濾器接口和File類的配合,每次只需要按照不同需求實現過濾器接口的方法就可以了。這裏並沒有詳細說這三個接口配合相應的類如何實現功能的。我只是想表達為什麽要設計接口和它可能的設計思想是什麽(可能我理解的也不對)。
叠代器、比較器、文件過濾器