在此篇中,将要练习策略模式。例子仍然是采用菜鸟教程(http://www.runoob.com/design-pattern/strategy-pattern.html)
package main import "fmt" func main() { con := new(Content) con.Strategy = OperationAdd{} v := con.executeStrategy(1,2) fmt.Println(v) con.Strategy = OperationMultiply{} v1 := con.executeStrategy(1,2) fmt.Println(v1) } type Content struct { Strategy Strategy } func (c Content) executeStrategy(num1 int,num2 int) int { return c.Strategy.doOperation(num1, num2) } type Strategy interface { doOperation(num1 int,num2 int) int } //加计算 type OperationAdd struct { } func (add OperationAdd ) doOperation(num1 int,num2 int) int { return num1 + num2 } //乘计算 type OperationMultiply struct { } func (add OperationMultiply ) doOperation(num1 int,num2 int) int { return num1 * num2 }