Are the decorator streams also implemented as adapters of stream instances or as some other design pattern?
简而言之:。
流适配器被实现为流实例的适配器。
decorator流是否也实现为流的适配器?实例?它们实现了什么设计模式?
注意,decorator流是作为
- 适配器是否总是按照组合而不是继承来实现(以便它们可以处理来自他们适应的那些?
- 装饰器是否总是以继承而不是组合的方式实现(以便它们始终可以与他们装饰的那个?
小精灵
谢谢。
适配器一般会改变接口,装饰器一般不会。
这就是为什么图中"decorator streams"的使用者能够相互替换这些类中的任何一个。代码不会改变是缓冲流还是加密流。
另一方面,读卡器和编写器(流适配器)的使用者希望有一个非常具体的接口,它是高度定制的,并且在适配器和适配器之间变化很大。一个返回XML节点,另一个可能是基元类型。它们不能互相交换。
(在GOF的书《设计模式》中有一个"装饰者"模式)。