Golang 操作者模式和接口
package main
import (
"fmt"
)
// 定义一个操作者接口
type Operator interface {
Operate(int, int) int
}
// 加法操作者
type Adder struct{}
// 实现 Operator 接口
func (a Adder) Operate(x, y int) int {
return x + y
}
// 减法操作者
type Subtractor struct{}
// 实现 Operator 接口
func (s Subtractor) Operate(x, y int) int {
return x - y
}
// 使用操作者模式的函数
func ApplyOperation(x, y int, op Operator) int {
return op.Operate(x, y)
}
func main() {
adder := Adder{}
subtractor := Subtractor{}
sum := ApplyOperation(5, 3, adder)
difference := ApplyOperation(5, 3, subtractor)
fmt.Printf("Sum: %d\n", sum)
fmt.Printf("Difference: %d\n", difference)
}
这段代码定义了一个操作者接口Operator
和两个结构体Adder
和Subtractor
,分别实现了这个接口。然后定义了一个函数ApplyOperation
,它接受一个操作者实例作为参数,并使用该操作者来执行操作。最后在main
函数中,我们创建了Adder
和Subtractor
的实例,并使用它们来计算了两个数的和与差,并打印结果。这展示了如何在Go语言中使用操作者模式来实现不同的操作。
评论已关闭