关于c#:装饰器流是否也实现为流实例的适配器或其他一些设计模式?

Are the decorator streams also implemented as adapters of stream instances or as some other design pattern?

简而言之:enter image description here

  • 流适配器被实现为流实例的适配器。

    decorator流是否也实现为流的适配器?实例?它们实现了什么设计模式?

  • 注意,decorator流是作为System.Stream或其派生类,而流适配器不是(但我猜是通过作曲)。所以我想知道适配器模式可以通过组合或继承来实现?

    • 适配器是否总是按照组合而不是继承来实现(以便它们可以处理来自他们适应的那些?
    • 装饰器是否总是以继承而不是组合的方式实现(以便它们始终可以与他们装饰的那个?
    • 小精灵

      谢谢。


      适配器一般会改变接口,装饰器一般不会。

      这就是为什么图中"decorator streams"的使用者能够相互替换这些类中的任何一个。代码不会改变是缓冲流还是加密流。

      另一方面,读卡器和编写器(流适配器)的使用者希望有一个非常具体的接口,它是高度定制的,并且在适配器和适配器之间变化很大。一个返回XML节点,另一个可能是基元类型。它们不能互相交换。

      (在GOF的书《设计模式》中有一个"装饰者"模式)。