package
0.0.0-20240524075138-355cfaa9df6a
Repository: https://github.com/mo3et/hello-design-patterns.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author

# README

Decorator(装饰器)

装饰器模式能够在不改变原对象结构的基础上,动态地为对象增加附属能力.

装饰器的使用是基于一个核心类,然后不作顺序限制的添加装饰器类组成的。 不在聚焦于枚举,而是放在"加料"这个过程行为

  • 首先,我们不再区分主菜和副菜,不论是鸡蛋还是培根还是青椒,我们都把它们当中一种普通的“菜品”
  • 针对于每一种“菜品”,我们定义出一个装饰器类
  • 每次使用一个装饰器类时,对应的逻辑是会往原本的主食中添加一份对应的“菜品”

对比总结

  • 不像继承强调等级和子类种类
  • 装饰器mos强调的是装饰的过程, 而不强调输入与输出,能动态地位对象增加某种特定的附属能力。
  • 相比继承显得更加灵活,且符合开闭原则