龙空技术网

Go语言设计模式-代理

心学苹果鱼 44

前言:

现时姐妹们对“nginx嵌入go”可能比较注重,各位老铁们都需要学习一些“nginx嵌入go”的相关资讯。那么小编也在网络上搜集了一些有关“nginx嵌入go””的相关资讯,希望你们能喜欢,各位老铁们一起来了解一下吧!

代理模式

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

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

借记卡是你银行帐户的代理卡。它遵循与银行帐户相同的界面,使用起来更容易。像Nginx这样的web服务器可以充当应用服务器的代理,它提供:对应用程序服务器的受控制的访问,例如,它可以限制访问速率其他行为,如对数据进行缓存。

下面是代理模式的UML图:

下面是示例的UML图:

下面是示例UML图到代码的映射关系 - 抽象接口、具体结构主对象、具体结构代理、客户:

Subject:它表示代理和realSubject应该遵循的接口Proxy:Proxy类嵌入realSubject,并在完成额外的操作后将请求传递给realSubjectRealSubject:这个类保存主业务逻辑,位于代理的底层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

标签: #nginx嵌入go