ZBLOG

golang 策略模式

策略模式是一种设计模式,它允许我们将不同的算法或策略封装成单独的对象,以便能够在运行时选择不同的算法或策略。

在Go语言中,我们可以使用接口来实现策略模式。首先定义一个接口,该接口将定义所有可能的算法或策略:

type Strategy interface {
    DoOperation(int, int) int
}

接下来,我们可以定义一些具体的算法或策略,这些算法或策略必须实现上述接口:

type Add struct{}

func (a *Add) DoOperation(num1 int, num2 int) int {
    return num1 + num2
}

type Subtract struct{}

func (s *Subtract) DoOperation(num1 int, num2 int) int {
    return num1 - num2
}

最后,我们可以创建一个Context结构体,它将包含对特定策略的引用:

type Context struct {
    strategy Strategy
}

func (c *Context) ExecuteStrategy(num1 int, num2 int) int {
    return c.strategy.DoOperation(num1, num2)
}

现在我们可以创建一个Context对象,并将其设置为使用任何一种算法或策略:

func main() {
    context := &Context{&Add{}}
    fmt.Println("10 + 5 = ", context.ExecuteStrategy(10, 5))

    context = &Context{&Subtract{}}
    fmt.Println("10 - 5 = ", context.ExecuteStrategy(10, 5))
}

以上代码将输出:

10 + 5 = 15
10 - 5 = 5

通过这种方式,我们可以轻松地切换不同的算法或策略。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=1572

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?