最近在温习设计模式,虽然面向对象不是go的特长,但用go实现的设计模式,比java 和 c# 这种纯面向对象语言多了一份灵活,比python 这种虚假的面向对象要更直观, 性能上也更有优势.

装饰模式
  • 装饰模式是一个非常常用的设计模式。常用到python内置了它。

  • 装饰模式是为已有功能动态的添加更多功能的一种方式, 降低了主类(当然,go里没有类这种东西,可以用结构模拟)复杂度, 防止类的爆炸行为.

  • 当新加的功能仅仅是满足某种特定条件下的需要时,装饰模式是个非常好的选择。

  • 装饰模式把核心功能和装饰功能区分了,减少了核心功能可能造成的冗余和耦合,简化核心类的重复装饰逻辑.

  • 装饰模式的装饰顺序很重要,它决定了最终类被装饰的效果

实例
  • Decorate 抽象

implement of Decorate
具体decorate 实现