Go Proxy代理模式

代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问\

代理模式主要包含以下三个角色:
Subject(抽象主题角色):定义了ProxySubject 和RealSubject的共用接口ISubjectProxy,这样就在任何使用RealSubject的地方都可以使用ProxySubject

RealSubject(真实主题角色):定义了ProxySubject 所代表的真实实体
Proxy(代理主题角色):保存一个Subject的引用使得代理可以访问实体(字段组合模式),并提供一个于Subject的接口相同的接口,这样代理就可以用来替代实体

package main

import "fmt"

// Proxy 设计模式

// 定义一个代理人和被代理人的接口
type ISubjectProxy interface {
	Process()
}

// 定义一个代理人struct
type RealSubject struct {

}
// 实现process接口
func (r *RealSubject) Process(){
	fmt.Println("realSubject 接口")
}

// 定义一个被代理struct
type ProxySubject struct {
	realSubject RealSubject
}
// 同样也实现Process 接口
func (p *ProxySubject) Process(){
	// 这个处理函数中可以放一些业务逻辑性的东西
	// 
	fmt.Println("Proxy 接口")
	p.realSubject.Process()
}

// 定义一个client
type ClientApp struct{

}

func (c *ClientApp) ProcessProxy(){
	fmt.Println("客户端client")
	isubject := new(ProxySubject)
	isubject.Process()
}

func main(){
	cli := ClientApp{}
	cli.ProcessProxy()
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值