您的位置首页  日常用品  装饰

设计模式第九讲:装饰器模式

  :在保持相同接口的同时,动态地给一个对象添加额外的功能。相对于继承的功能扩展而言,装饰器也是一个灵活的替代方式。

  如图3所示,注入不同实现(TCP,HTTP)的客户端,不会影响WebClient中的代码。因此,WebClient与被装饰的客户端(TCP实现或HTTP实现的客户端)没有耦合,方便增加被装饰对象,并且两者可以独立发展。装饰类与被装饰类都是Client的子类,这与外观模式有所不同。

  装饰器模式是继承的一种补充,可以增加功能扩展的灵活性。如果每个子类的方法都要去调用附加功能,就需要分别修改各个子类,而如果使用装饰器类,则只需要增加一个装饰器类。再者,如果被装饰的方法需要与不同的装饰功能组合在一起,会出现类膨胀问题。最后Java中的流相关类使用了装饰器模式,如图4所示。

免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186