interface 实现简单的print功能

2020-03-08  本文已影响0人  晓亮1988

第一步,新建立 test/testInterface.go 简单实现print功能的基本框架

package testInterface

type PrintMethod interface {
    OwnPrintMethod()
}
// 形参是接口类型,只要实现了接口的方法即可使用
func MyPrintMethod(pm PrintMethod) {
    pm.OwnPrintMethod()
}

第二步:使用方法,只要Book,Sentense实现接口方法OwnPrintMethod即可使用定义好的接口

package main

import (
    "fmt"
    "goweb/test"
)

// 定义Book 结构体
type Book struct {
    Content string
}

// 定义结构体
type Sentense struct {
    Content string
}

// 实现接口方法
func (b Book) OwnPrintMethod() {
    fmt.Println(b.Content)
}

// 实现接口方法
func (s Sentense) OwnPrintMethod() {
    fmt.Println(s.Content)
}

func main() {
    fmt.Println("start \n")

    // 初始化赋值
    book := Book{Content:"this is book"}

    // 初始化赋值
    sentense := Sentense{Content:"this is sentense"}

    testInterface.MyPrintMethod(book)
    testInterface.MyPrintMethod(sentense)

    fmt.Println("\n end \n")
}

这里充分体现了使用者定义的哲学,Book和Sentense分别定义了自己的Print模式,我们设计的Print模块负责基本功能的实现

上一篇 下一篇

猜你喜欢

热点阅读