装饰者模式是在开放 ---- 关闭原则下实现动态添加或减少功能的一种方式。
装饰者模式 就是不修改原类代码和继承的情况下动态扩展类的功能,传统的编程模式都是子类继承父类实现方法重载,使用装饰器模式,只需要加一个新的装饰器对象,更加灵活,避免数量和层次过多。
以laravel 为例子,在解析请求生成响应之前,或者之后需要经过中间件的处理,主要包括验证维护模式,cookie加密、开启回话,CSRF保护等,这些处理有些是在生成响应之前,有些是在生成响应之后,在实际开发过程中有可能还需要添加新的处理功能,如果在不修改原有类的基础上动态地添加或减少处理功能将使框架可扩展性大大增强,而这种需求正好被装饰者模式解决。