JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

Go语言设计模式-代理 go语言程序设计

wys521 2024-10-19 09:24:51 精选教程 22 ℃ 0 评论

代理模式

代理模式是一种结构型的设计模式。此模式建议提供额外的间接层来控制和智能地访问主对象。

在此模式中,将创建一个新的代理类,该类实现了和主对象相同的接口。这允许在执行主对象的实际逻辑之前进行一些操作。让我们通过一个例子来了解它:

  1. 借记卡是你银行帐户的代理卡。它遵循与银行帐户相同的界面,使用起来更容易。
  2. 像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

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表