一,一个类型可以实现多个接口 而接口间彼此独立,不知道对方的实现。
type HandlerInterface interface { OnRequset() IsRequestOk() bool } type Test2 struct{//... } type Test struct{ ID int //普通结构 start()string //接口函数 HandlerInterface //接口函数 Test2 //结构嵌套 } func NewTest()*Test{//... return &Test{} } func(t *Test)OnRequset{//... } func(t *Test)IsRequestOk{//... }二,一个接口可以有多个结构实现
一个接口的方法,不一定需要由一个类型完全实现, 接口的方法可以通过在类型中嵌入其他类型或者结构体来实现。 也就是说,使用者并不关心某个接口的方法是通过一个类型完全实现的, 还是通过多个结构嵌入到一个结构体中拼凑起来共同实现的。 //老司机开车 这个接口函数可不是一个结构体完成的 type Car interface { Start() // 开启 close()string // 关闭 } // 熄火 type Close struct {//... } // 实现Car 的close()方法 func (c *Close) close()string {//... } // 人为 type People struct { Close // 嵌入日志器 } // 实现Car的Start()方法 func (p *People) Start() {//... }