17、Go 编程中的接口应用、依赖注入与面向切面编程

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值