Filter模式
继承的问题
如果新功能的实现依赖于继承(每个新功能对应一个子类)会出现子类数目过多的情况
栗子
- 给FileInputStream添加解压、签名、加解密
问题的解决
分类是不可或缺的
InputStream
- FileInputStream
- ByteArrayInputStream
- ServletInputStream
- BufferedInputStream
- DigestInputStream
- CipherInputStream
先new基础类,再以基础类为参数new额外功能类,但统筹调度统一用InputStream
编写FilterInputStream
1 | package eternal.fire; |
