Go编程模式:委托和反转控制
反转控制 IoC – Inversion of Control 是一种软件设计的方法,其主要的思想是把控制逻辑与业务逻辑分享,不要在业务逻辑里写控制逻辑,这样会让控制逻辑依赖于业务逻辑,而是反过来,让业务逻辑依赖控制逻辑。在《 IoC/DIP其实是一种管理思想 》中的那个开关和电灯的示例一样,开关是控制逻辑,电器是业务逻辑,不要在电器中实现开关,而是把开关抽象成一种协议,让电器都依赖之。这样的编程方式可以有效的降低程序复杂度,并提升代码重用。 本文是全系列中第4 / 9篇: Go编程模式 Go编程模式:切片,接口,时间和性能 Go 编程模式:错误处理 Go 编程模式:Functional Options Go编程模式:委托和反转控制 Go编程模式:Map-Reduce Go 编程模式:Go Generation Go编程模式:修饰器 Go编程模式:Pipeline Go 编程模式:k8s Visitor 模式 « 上一篇文章 下一篇文章 » 面向对象的设计模式这里不提了,我们来看看Go语言使用Embed结构的一个示例。 目录 嵌入和委托 结构体嵌入 方法重写 嵌入结构多态 反转控制 实现Undo功能 反转依赖 嵌入和委托 结构体嵌入 在Go语言中,我们可以很方便的把一个结构体给嵌到另一个结构体中。如下所示: type Widget struct { X, Y int } type