java.io.Filter *类型的目的是什么?即FilterInputStream
,FilterReader
通过简单地覆盖特定方法并调用FileInputStream
,是否可以将任何过滤逻辑添加到具体流类(如super()
)?即super.read()
据我所知,过滤器类型提供的唯一设施充其量只是感知 - 也就是说,他们记录(一目了然)所有开发人员真正需要的是一种应用一些额外逻辑的方式(过滤)到现有的流实现。
我错过了什么?
答案 0 :(得分:2)
这是Decorator Pattern,然后您可以使用它来过滤扩展输入流的任何内容。这意味着您可以灵活使用它。
如果扩展输入流,那么每当您想要过滤某些内容时,您需要扩展该类型的输入流。因此,如果要过滤每种类型的输入流,则需要为每种类型的输入流使用过滤器扩展类。使用装饰器模式,您只需要一个接受输入流的实现,您可以全部过滤它们。