装饰器模式是一种设计模式,允许将行为动态的添加到单个对象,而不影响同类中其他对象的行为。

提供了子类化之外的灵活选择。

Example

在Golang中,可以使用接口和匿名函数来实现。

上面的代码中,我们定义了Printer接口以及实现了接口的结构体SimplePrinter

然后,我们定义了BoldDecorator函数,接收一个Printer interface并返回一个Printer interface。将原来的Print()方法封装到一个新的方法中,返回用<b>括起来的新字符串。