Go 编程中的接口应用、依赖注入与面向切面编程
接口方法命名的注意事项
在 Go 语言里,不同接口若有相同方法名和/或返回类型,不能将它们合并成新接口,一个类型也无法同时实现这些不同接口。例如, io.Writer 接口的 Write 方法有特定含义,其他接口若为不同目的创建同名 Write 方法就会产生冲突。
type MyWriter interface {
// vs. io.Writer: Write([]byte) (int,error)
Write([]byte, int) error
}
无法创建一个同时实现 MyWriter 和 io.Writer 接口的类型。为避免此问题,可使用较长、多单词的方法名,把短名称留给 Go 运行时开发者使用。
依赖注入(Dependency Injection,DI)
依赖注入是一种设计方法,代码所需的依赖由外部提供,而非自己获取。这种方法将创建依赖的责任与依赖该对象的代码分离,注入的类型通常需符合某种接口类型。
依赖注入具有很大灵活性,尤其在测试代码时可注入模拟对象,以及配置对象间复杂关系时。在 Java 开发中,Spring 和 Spring Boot 等框架就是为实现依赖注入而创建的,此外还有 Google 的 Guice。
依赖的定义
依赖是一个对象,至少需满足以下条件:
1
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



