
,隐藏真实对象,用一个代理对象来对真实对象进行操作,也可以做一些其它和真是对象无关的操作
package mainimport "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方法里初始化