网站首页 > 精选教程 正文
代理模式
代理模式是一种结构型的设计模式。此模式建议提供额外的间接层来控制和智能地访问主对象。
在此模式中,将创建一个新的代理类,该类实现了和主对象相同的接口。这允许在执行主对象的实际逻辑之前进行一些操作。让我们通过一个例子来了解它:
- 借记卡是你银行帐户的代理卡。它遵循与银行帐户相同的界面,使用起来更容易。
- 像Nginx这样的web服务器可以充当应用服务器的代理,它提供:
- 对应用程序服务器的受控制的访问,例如,它可以限制访问速率
- 其他行为,如对数据进行缓存。
下面是代理模式的UML图:
下面是示例的UML图:
下面是示例UML图到代码的映射关系 - 抽象接口、具体结构主对象、具体结构代理、客户:
- Subject:它表示代理和realSubject应该遵循的接口
- Proxy:Proxy类嵌入realSubject,并在完成额外的操作后将请求传递给realSubject
- RealSubject:这个类保存主业务逻辑,位于代理的底层
- Client:可以与代理和realSubject进行交互,因为它们都遵循相同的接口。
server.go是抽象接口server的代码:
nginx.go是具体结构代理nginx的代码:
application.go是具体结构主对象application的代码:
main.go是客户主函数的代码:
结果:
Url: /app/status
HttpCode: 200
Body: Ok
Url: /app/status
HttpCode: 200
Body: Ok
Url: /app/status
HttpCode: 403
Body: Not Allowed
Url: /app/status
HttpCode: 201
Body: User Created
Url: /app/status
HttpCode: 404
Body: Not Ok
猜你喜欢
- 2024-10-19 nginx 游乐场 - 实时在线验证nginx配置
- 2024-10-19 Go微服务精讲:Go-Zero全流程实战即时通讯(超清)
- 2024-10-19 27 | API网关:系统的门面要如何做呢?
- 2024-10-19 分布式文件go-fastdfs初应用 分布式文件标准
- 2024-10-19 『GCTT 出品』无停机优雅重启 Go 程序
- 2024-10-19 Go语言上手很简单 go语言基础入门
- 2024-10-19 全球足迹:用GoAccess绘制访问地图
- 2024-10-19 nginx docker 容器如何访问宿主机的 golang 程序
- 2024-10-19 聊天系统——gowebsocket 聊天系统结构图
- 2024-10-19 全流程开发 GO实战电商网站高并发秒杀系统
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)