Go语言是谷歌2009发布的第二款开源编程语言。
Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。
策略模式的概念: 定义一系列的算法,把每一个算法封装起来, 并且使它们可相互替换。 本模式使得算法可独立于使用它的客户而变化. 也称为政策模式(Policy)
策略模式 属于行为模式, 可以改变对象的形为操作 主要解决可以互相替代的算法族, 可以通过动态去替换Context使用的算法.
// 定义一个策略接口, 可以独立于具体算法.
type Strategy interface {
// 接口方法, 这里只是抽象出一种算法框架, 而不定义具体使用哪种算法, 将实现推迟到实现的子类
// 这里只定义算法框架, 这是重点.
DoOperation(x, y int) int
}
// 创建一个Context 结构接受接口的对象.
type Context struct {
sy Strategy // 这里必须与接口建立一种继承关系(golang里这就是一种继承, 没有 implements 关键字)
}
// New一个Context, 返回结构体
func NewContext(s Strategy) *Context {
return &Context{
sy:s, // 接口赋值给sy
}
}
// 执行接口里的方法, 这里非常关键, 也是具体算法的执行方法.也称执行策略方法
func (c *Context) ExecuteStrategy(x, y int) int {
return c.sy.DoOperation(x, y)
}
// 实现策略接口
type Add struct {
}
// 这里就是策略实现不同的算法代码.
func (a *Add) DoOperation(x, y int) int {
return x +y
}
// 实现策略接口
type Sub struct {
}
// 这里就是策略实现不同的算法代码.
func (s *Sub) DoOperation(x, y int)int {
return x - y
}
func main() {
// New一个Context, 将具体算法传入
add := NewContext(&Add{})
// 调用执行策略的访求
fmt.Printf("Add x + y: %d\\n", add.ExecuteStrategy(10, 10))
// New一个Context, 将具体算法传入
sub := NewContext(⋐{})
// 调用执行策略的访求
fmt.Printf("sub x + y: %d\\n", sub.ExecuteStrategy(10, 10))
}
Go语言是谷歌推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发Go,是因为过去10多年间软件开发的难度令人沮丧。
¥299.00
¥399.00
¥399.00
¥699.00