一个优秀的程序员,基本都会把面向接口编程形成肌肉记忆的,毕竟要想写出优雅、高度灵活、可扩展的代码是离不开设计模式的,而设计模式的核心就是面向接口编程。
golang
并没有Java
中implement
关键字,可以声明当前类实现了某个接口,golang是鸭子类型
,实现了某个接口的所有方法时,自然就是实现了某个接口。
在书写代码时,有一些技巧快速实现一个接口。
一:定义一个匿名变量
实际工作中,接口一般会作为某个函数的参数,我们使用多态书写了多个实现接口的方法,想要扩展,再新增一个实现了接口的结构体时,书写完后,并不能保证实现了接口的全部方法,从而就没有实现接口,运行时会出错,因此可以通过定义一个匿名变量的方式,如果可以赋值给接口,说明实现了接口,如下
package main
type someInterface interface {
DoSomething()
DoAnotherThing()
}
type someStruct struct {
}
// 关键就是这行代码,能够保证someStruct实现了someInterface接口
var _ someInterface = &someStruct{}
func (s someStruct) DoSomething() {
panic(any("implement me"))
}
func (s someStruct) DoAnotherThing() {
panic(any("implement me"))
}
二:使用快捷键
goland
工具快速实现一个接口的快捷键为Ctrl +i
,将光标移动到结构体上,然后按该快捷键,输入想要实现的即可即可