henryspace

记录精彩的程序人生 开始使用

Part 14 - Go 语言学习 - 接口的应用

接口的应用

  1. 代码讲解
  • 首先定义一个包,Get方法实现一个相当于curl的功能
package infra

import (
	"io/ioutil"
	"net/http"
)

type Retriever struct {
}

func (Retriever) Get(url string) string {
	resp, err := http.Get(url)

	if err != nil {
		panic(err)
	}

	defer resp.Body.Close()

	bytes, _ := ioutil.ReadAll(resp.Body)
	return string(bytes)
}
  • 定义一个testing包,对Get方法进行测试
package testing

type Retriever struct {

}

func (Retriever) Get(url string) string {
	return "test "
}

  • 接口的定义可以用于解耦
package main

import (
	"fmt"
	"ging/testing"
)

func getRetriever() retriever {
    // 可以很方便的替换,解耦
	//return testing.Retriever{}

    return infra.Retriever{}
}

// 定义一个接口,只有一个Get方法
type retriever interface {
	Get(string) string
}

func main() {
    // 声明一个接口类型值
	var r retriever = getRetriever()
	fmt.Println(r.Get("https://www.imooc.com"))

}


评论
留下你的脚步
推荐阅读