设计模式篇之 装饰器模式 Decorator
别名:Wrapper
目的
装饰器是一种结构型设计模式,它允许你通过将对象放置在包含行为的特殊包装对象内部,从而为对象附加新的行为。
问题
假设你正在开发一个通知库,它允许其他程序向用户通知重要事件。
该库的初始版本基于`Notifier`类,该类只有几个字段、一个构造函数和一个`send`方法。该方法可以接受客户端传递的消息参数,并将消息发送到通过其构造函数传递给通知器的电子邮件列表。作为客户端的第三方应用程序将创建并配置通知器对象一次,然后在每次发生重要事件时使用它。

在某个阶段,你意识到库的用户期望的不仅仅是电子邮件通知。许多人希望在出现严重问题时收到短信通知。还有一些人希望在Facebook上收到通知,当然,企业用户会喜欢收到Slack通知。