【golang】代理模式 proxy using in go
1. Proxy Pattern what? how?
代理模式是一种结构模式,其目的是提供对象的代理或中介来控制对象的访问。通常包装对象以隐藏其某些特征。下面举一个汽车的代理,Driven接口,Car和CarProxy都实现了,但是通过代理可以实现特殊逻辑的植入,如开车司机并限制司机的年龄等;
package mainimport "fmt"type Driven interface {Drive()
}type Car struct {}func (c *Car) Drive(){fmt.Println("Car being driven")
}type Driver struct {Age int
}type CarProxy struct {car Cardriver *Driver
}func (c *CarProxy) Drive(){if c.driver.Age >= 18 {c.car.Drive()}else{fmt.Println("Driver too young!!!")}
}func NewCarProxy(driver *Driver) *CarProxy {return &CarProxy{Car{}, driver}
}func main(){car := NewCarProxy(&Driver{20})car.Drive()
}output:
Car being driven
2. 代理模式和其他模式的关系:
门面模式和代理模式是相似的,因为在两者都可以缓冲复杂的实体,并初始化它自己。
Adapter 模式为包装对象提供了一个不同的接口,而代理模式提供了相同的接口,修饰模式(Decorator Pattern)提供了一个增强的接口。
3. 优点和缺点
优点:
- 允许在客户端不知道的情况下控制服务对象(main struct)。
- 允许在客户端不关心的情况下管理服务对象的生命周期。
- 即使服务对象尚未准备好或尚未可用,代理也可以工作。
- 帮助实施开闭原则(open-close)。
缺点:
- 代码可能会变得复杂,因为引入许多新类。
- 服务响应可能受到影响,因为添加了执行时间的延迟
【golang】代理模式 proxy using in go相关推荐
- 代理模式(Proxy)简介
代理模式相对来讲比较简单和容易理解. 一, 代理模式(Proxy)的定义 教材里定义很简单: 所谓代理模式, 就是为其他对象提供一种代理控制对这个对象的访问. 上面出现了3个名词: 1.其他对象 2. ...
- 二十四种设计模式:代理模式(Proxy Pattern)
代理模式(Proxy Pattern) 介绍 为其他对象提供一个代理以控制对这个对象的访问. 示例 有一个Message实体类,某对象对它的操作有Insert()和Get()方法,用一个代理来控制对这 ...
- Java24种设计模式(第二种)--代理模式(Proxy Pattern)
Java24种设计模式 (第二种) 一.代理模式(Proxy Pattern) 模式逻辑: 什么是代理模式呢?我很忙,忙的没空理你,那你要找我呢就先找我的代理人吧,那代理人总要知道 被代理人能做哪些事 ...
- 二十三种设计模式(第十二种)-----代理模式(Proxy)
二十三种设计模式(第十二种)-----代理模式(Proxy) 尚硅谷视频连接https://www.bilibili.com/video/BV1G4411c7N4?from=search&se ...
- [Java] 代理模式 Proxy Mode
[Java] 代理模式 Proxy Mode 文章目录 [Java] 代理模式 Proxy Mode 1. 代理思想 2.java.lang.reflect.Proxy类 2.1 利用反射创建prox ...
- 设计模式——代理模式(Proxy Pattern)之为别人做嫁衣
代理模式Proxy Pattern 代理模式 1.背景 2.定义 3.特征 4.应用场景 5.实验案例 参考 代理模式 1.背景 假如说我现在想租一间房子,虽然我可以自己去找房源,做卫生检测等一系列的 ...
- 设计模式-代理模式(Proxy Pattern)
设计模式-代理模式(Proxy Pattern) 文章目录 设计模式-代理模式(Proxy Pattern) 一.定义 二.概念解释 三.场景 四.实现 1.类图 2.代码实现 五.小结 六.动态代理 ...
- js设计模式——代理模式proxy
什么是代理模式 代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问. (可以想象一下明星与经纪人的关系,明星是请求的本体,经纪人就是代理proxy) 如何实现代理模式 代理对象内部含有对本 ...
- 设计模式之代理模式(Proxy)摘录
23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...
最新文章
- Shell排序的原理与集体实现
- 生成建表脚本up_CreateTable
- boost::local_time模块实现航班飞行时间的测试程序
- HAOI2018 染色
- videojs如何获取请求消息_中通消息平台 Kafka 顺序消费线程模型的实践与优化
- 判断两个时间段是否重叠的算法
- 安装vue-cli脚手架
- ubuntu下lvs负载均衡dr模型shell脚本
- Ubuntu下安装配置Phabricator
- golang http长连接
- 软件著作权-说明书范本
- 30m服务器可以用多少人在线,30m网速(30m宽带够几个人用)
- 计算机内部网络连接,在电脑中新建专用网络连接的操作方法【图文教程】
- ASEMI双向可控硅BTA12A,详解BTA12A参数应用与特性
- unity的ngui的字体变形问题
- 武职计算机网络技术专业,武汉职业技术学院计算机系
- Hash函数及其重要性
- 产生调幅波的几种方法
- 物联网常见概念总结(期末复习)
- Word文档重新打开时恢复到上次阅读位置