用函数式模拟设计模式-桥接

179 阅读1分钟

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)()