装饰品模式

在这里插入图片描述
装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。

这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。

意图:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。

主要解决:一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀。

何时使用:在不想增加很多子类的情况下扩展类。

如何解决:将具体功能职责划分,同时继承装饰者模式。

关键代码: 1、Component 类充当抽象角色,不应该具体实现。 2、修饰类引用和继承 Component 类,具体扩展类重写父类方法。

应用实例: 1、孙悟空有 72 变,当他变成"庙宇"后,他的根本还是一只猴子,但是他又有了庙宇的功能。 2、不论一幅画有没有画框都可以挂在墙上,但是通常都是有画框的,并且实际上是画框被挂在墙上。在挂在墙上之前,画可以被蒙上玻璃,装到框子里;这时画、玻璃和画框形成了一个物体。

优点:装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能。

缺点:多层装饰比较复杂。

使用场景: 1、扩展一个类的功能。 2、动态增加功能,动态撤销。

注意事项:可代替继承。

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
Z7t8TUywxEIDNWKUW1t2Wg==

发布了236 篇原创文章 · 获赞 4 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/xmh_sxh_1314/article/details/105601467
今日推荐