Java类库中有为满足不同需求而设计的不同的器,实际上就是不同的接口。最近学习了比较器、迭代器和文件过滤器这三个接口,我根据自己的理解做了一个不成熟的总结,假如有很多不准确甚至是错误的地方,希望大家多多赐教!
这三个接口在设计的时候,并不是只是声明一个接口以及它里面的方法,也在需要特定类“配合”这些接口来完成某些功能,特定类指的就是需要使用这些接口完成某项功能的类(比如Tree结构集合要按照一定规则排序而使用比较器排序,这里Tree结构集就是我说的特定类,比较器就是它需要用的接口)。
什么意思呢?打个不恰当的比方,这三种接口就相当于基站,而特定的类就相当于各种手机,我手机想要通过基站来通讯,不能只让基站发送信号,你手机却没有接受信号的功能,所以手机需要配合基站。这三个接口和这些特定类的关系就类似基站和手机。
这里通过File类和文件过滤器来说,File类里有list(FilenameFilter filter)方法来接受文件过滤器的对象,File类的list(FilenameFilter filter)和文件过滤器接口中的accept(File file,String name)配合共同完成文件的过滤。同理,另外两种接口和其特定类也是类似的(不一定是如File类和文件过滤器一样是通过构造方法获取接口对象的方式来完成,这里我就不详细说明了)。对于文件过滤,或许每次需要过滤的文件不一样,所以才不在File类里定义一个方法实现,不然每次有新需求都得重写。而通过过滤器接口和File类的配合,每次只需要按照不同需求实现过滤器接口的方法就可以了。这里并没有详细说这三个接口配合相应的类如何实现功能的。我只是想表达为什么要设计接口和它可能的设计思想是什么(可能我理解的也不对)。
原文地址:https://www.cnblogs.com/jeenyung/p/9103074.html