1. 定义接口
type BF1 func()
type BF2 func(BF1)
2. 桥接函数
func Bridge(f1 BF2, f2 BF1) func() {
return func() {
f1(f2)
}
}
3. 实现接口
func Milk() {
fmt.Print("+牛奶")
}
func Sugar() {
fmt.Print("+糖")
}
func Coffee(f BF1) {
fmt.Print("咖啡")
f()
}
func Tea(f BF1) {
fmt.Print("茶")
f()
}
4. 使用
Bridge(Tea, Sugar)()