您好,登錄后才能下訂單哦!
針對項目中,相同的流程業務進行重構,使用Go來簡單模擬Java中的接口,實現類的方式進行重構。
分享一簡單例子:
package main
//模擬java中的接口,實現類
import "fmt"
// 聲明一個接口,
type workthread interface {
do(name string)
}
// 傳入的wt的子類不同,do方法執行的邏輯也不同
func Handle(wt workthread, name string) {
fmt.Println("--------執行do方法前的邏輯------")
wt.do(name)
fmt.Println("--------執行do方法后的邏輯------")
}
type SparkNode struct {
ClusterName string
}
func (sn *SparkNode) do(name string) {
fmt.Println("----hello, I'm spark node", "\t", sn.ClusterName)
}
func (sn *KafkaNode) do(name string) {
fmt.Println("----hello, I'm kafka node\t", sn.ClusterName)
}
type KafkaNode struct {
ClusterName string
}
func main() {
sparkNode := &SparkNode{
ClusterName: "k8s",
}
kafkaNode := &KafkaNode{
ClusterName: "kafka-node",
}
Handle(sparkNode, "111")
Handle(kafkaNode, "222")
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。