附加器

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

发布时间:2022/8/15 14:23:04   

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

例子:如下例模拟手机端请求web端数据,以字符串的形式发送请求。

图1图2图3图4

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

使用场景:1、被装饰类需要扩展一些附加功能;2、在一些需要动态为类增加附加功能的场景。

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

SecretGarden-Steps04:03来自阿登编程

转载请注明:http://www.aideyishus.com/lkyy/1181.html
------分隔线----------------------------

热点文章

  • 没有热点文章

推荐文章

  • 没有推荐文章