美文网首页
论装饰器模式

论装饰器模式

作者: 行走的鸡汤哥 | 来源:发表于2019-05-07 23:45 被阅读0次

装饰器模式的要点

装饰器模式的重点不在于改变某个对象的特性或添加新的特性,而在于将新的公共特性抽取出来并适配多个对象,即装饰与被装饰对象之间是多对多的关系。

以java io体系为例。
java io中,装饰器是FilterInputStream,具体的装饰器有DataInputStream、BufferedInputStream等。被装饰类有FileInputStream、ByteArrayInputStream等。这些类的关系如下图所示:


java io体系.png

其中,不管是DataInputStream亦或BufferedInputStream提供的新特性,都适用于FileInputStream或ByteArrayInputStream,因此采用装饰器模式实现io体系是比较合适的。

装饰器模式与代理模式的区别

代理模式强调的是被代理对象的功能控制或增强,这种控制和增强是只适用于某个对象的模式,即代理与被代理对象之间是一对一的关系。

相关文章

网友评论

      本文标题:论装饰器模式

      本文链接:https://www.haomeiwen.com/subject/hvzyoqtx.html