go設計模式之代理模式

代理在計算機領域是個經常被提及的名詞,如nginx就常被用於webf服務的代理。那麼怎麼實現代理這種模式?

定義一個接口,定義要代理的執行的方法

定義一個真正執行類,實現接口定義的方法

定義代理類,實現接口定義的方法,在代理中,通過調用真正執行方法調用

以下使用go實現該模式

package main

import "fmt"

type Subject interface {
	Do() string
}

type RelSubject struct {
}

func (r *RelSubject) Do() string {
	return "test"
}

type Proxy struct {
	real RelSubject
}

func (proxy *Proxy) Do() string {
  res := proxy.real.Do()
  return res
}

func main() {
	var sub Subject
	sub = &Proxy{}

	res := sub.Do()

	fmt.Println(res)
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章