代理模式
type Subject interface {
Do()
}
type RealSubject struct{}
func (impl RealSubject) Do() {
fmt.Println("do something")
}
// SubjectProxy 静态代理类
type SubjectProxy struct {
subject RealSubject
}
// Do 也实现了Subject接口
func (proxy SubjectProxy) Do() {
// 前置触发,一般会是一些条件控制什么的
fmt.Println("proxy before")
proxy.subject.Do()
// 后置触发
fmt.Println("proxy after")
}
func NewProxySubject() Subject {
return new(SubjectProxy)
}最后更新于