大话设计模式 装饰模式

图片发自简书App

一层继承一层。装饰模式是为已有功能动态地添加更多功能的一种方式。关键词是添加更多功能。

当系统需要新功能时,是向旧的类中添加新的代码。这些新加的代码通常装饰了原有类的核心职责或主要功能,而这些代码仅在特定情况下才需要。装饰模式把每个要装饰的功能放在单独的类,当执行时客户代码可以有选择,按顺序使用装饰功能包装对象。

他的好处是有效地把类的核心职责和装饰功能区分开,而且除去相关类的重复装饰逻辑。

人类有个show的函数。服饰类继承人类,并拥有一个人类,装饰就是set人类,有一个覆盖的show 函数里面调用自身人类的show。具体类的西裤,大衣类都有继承服饰类,覆盖show 函数,里面是装饰逻辑和调用父类的show。客户端首先创建人类,然后按顺序西裤set 人,大衣set前面的西裤,最后大衣show。这样就会先做了穿大衣的逻辑,然后调用服饰类的show,这个show调用了set进去的西裤的show,所以继续做西裤的逻辑,然后重复迭代,调用人类的show逻辑。

这样的确一层叠一层,也可以按顺序。感觉就是一直调用set进来的类的同一个函数。继承是为了可以set的使用用泛型,以后更动态的添加新类,不影响其他的装饰类。

应用:加密数据,过滤词汇都可以是数据持久化的装饰功能,保证装饰类之间彼此独立,这样就可以任意顺序组合。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容