第四章 面向接口
接口的定义
- 接口由使用者定义
type Retiever interface {
Get( url string ) string
}
func download( retriever Retiever ) {
return retriever.Get("http://www.baidu.com")
}
- 接口的实现是隐式的
- 只要实现接口里的方法
接口变量里有什么
func main() {
var r Retriever
}
// mock.go
package mock
type Retriever struct {
Contents string
}
func (r *Retriever) Get(url string) string {
return r.Contents
}
// real.go
package real
type Retriever struct {
UserAgent string
TimeOut time.Duration
}
func (r *Retriever) Get(url string