代理模式

../_images/Proxy.jpg

,隐藏真实对象,用一个代理对象来对真实对象进行操作,也可以做一些其它和真是对象无关的操作

package main

import "fmt"

type Subject interface {
request()
}

type RealSubject struct {
}
func(it *RealSubject)request(){
fmt.Println("realSubject")
}

type Proxy struct {
subject Subject
}
func(it *Proxy)request(){
it.subject.request()
}
func(it *Proxy)others(){
fmt.Println("asdfzxcnwekfjn,msdnviuawefn")
}

func main(){
proxy := new(Proxy)
proxy.subject = new(RealSubject)
proxy.request()
proxy.others()
}
我没有实现在Proxy内部new一个realsubject,实际上应该这样做。可是我没有。。。
因为Go语言不能像爪洼(Java)和C11(C++)那样初始化把。可以再通过写另一个方法来初始化,或者在init方法里初始化
原文地址:https://www.cnblogs.com/mcmx/p/11328743.html