GoLang中21种设计模式有哪些?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1219个文字,预计阅读时间需要5分钟。
装饰器模式是一种设计模式。它允许为对象添加额外功能,而不修改其结构。通过装饰器模式,可以为对象添加额外功能而不需要调用者知道这些功能。例如,假设我们开了一家抱枕店,可以通过装饰器模式来增加抱枕的功能,如添加照明或音乐播放功能,而不改变抱枕的基本结构。
装饰器模式是一种结构型设计模式。通过装饰器模式可以为一个对象添加额外的功能而不需对其作出调整。
还是通过具体的案例来了解装饰器模式:假设我们开了一家披萨店,现在店里主营两款披萨:
- 素食狂披萨(Veggie Mania Pizza)
- 活力豆腐披萨(Peppy Tofu pizza)
以上两款披萨有不同的价格,为获取价格需要定义这样一个接口:
package main type pizza interface { getPrice() int }
然后需要这两款披萨分别创建一个struct并实现getPrice()函数来返回价格。因为定义了getPrice()函数,因此这两款披萨的struct可以视为实现了pizza接口。
现在又有了一些变化:我们为设计了一些特色配料,这些配料也是需要收费的。这样我们需要修改下之前的pizza接口,通过装饰器的形式将配料(topping)的信息给加进去。
本文共计1219个文字,预计阅读时间需要5分钟。
装饰器模式是一种设计模式。它允许为对象添加额外功能,而不修改其结构。通过装饰器模式,可以为对象添加额外功能而不需要调用者知道这些功能。例如,假设我们开了一家抱枕店,可以通过装饰器模式来增加抱枕的功能,如添加照明或音乐播放功能,而不改变抱枕的基本结构。
装饰器模式是一种结构型设计模式。通过装饰器模式可以为一个对象添加额外的功能而不需对其作出调整。
还是通过具体的案例来了解装饰器模式:假设我们开了一家披萨店,现在店里主营两款披萨:
- 素食狂披萨(Veggie Mania Pizza)
- 活力豆腐披萨(Peppy Tofu pizza)
以上两款披萨有不同的价格,为获取价格需要定义这样一个接口:
package main type pizza interface { getPrice() int }
然后需要这两款披萨分别创建一个struct并实现getPrice()函数来返回价格。因为定义了getPrice()函数,因此这两款披萨的struct可以视为实现了pizza接口。
现在又有了一些变化:我们为设计了一些特色配料,这些配料也是需要收费的。这样我们需要修改下之前的pizza接口,通过装饰器的形式将配料(topping)的信息给加进去。

