欢迎光临散文网 会员登陆 & 注册

设计模式:装饰模式

2021-04-22 09:11 作者:做架构师不做框架师  | 我要投稿

什么是装饰模式?

装饰模式(英文:Decorator Pattern),动态地往一个类中加入新的行为,就功能而言,修饰模式相比生成子类更为灵活,这样可以给某个对象而不是整个类添加一些功能。

一句话归纳

他大舅他二舅都是他舅。

代码示例

我以前在北京上班的时候,一大早不到7点就出门(真是起得比鸡早,睡得比狗晚啊),然后去赶公交车,等坐完了两个小时公交车后,在路上就买一个鸡蛋灌饼当早饭吃,豪奢的时候给自己加个肠加个鸡蛋,这里就以我的早餐为例。

适用性

以下场景我建议你考虑使用:

  • 需要扩展一个类的功能的时候,又不想通过子类扩展的时候;

  • 需要给一个类动态的增加,动态的撤销的时候;

  • 需要给现有的一组类进行加功能时候;

  • 装饰模式在java语言中的最著名的应用莫过于 Java I/O 标准库的设计。

  • 装饰模式是“is-a”的关系。

局限性

以下场景我建议你谨慎使用:

  • 多层封装会提升代码的复杂度,就像剥洋葱一样;

  • 继承是静态的给类增加功能,而装饰模式则是动态的增加功能。

写在最后

最后,好兄弟,记得点赞,关注,谢谢。


设计模式:装饰模式的评论 (共 条)

分享到微博请遵守国家法律