有什么方法可以用Go语言进行面向方面的编程

Zha*_*gxz 5 aop go

我正在尝试在go程序中使用面向方面的编程,例如,在服务中记录信息,而不会入侵我的功能代码,但是我发现没有方法可做。

Eli*_*sky 6

Go 通常倾向于低“魔法”的设计和代码,更喜欢明确性。中间件是一种常见的设计模式,它提供了人们使用 AOP 所做的很多事情,就像您提到的简单示例一样 - 当您的服务器代码设置正确时,您可以注册将自动记录事物等的中间件。有一些代码示例对于Go Web Examples 站点上的中间件,谷歌搜索会发现更多。本教程讨论日志中间件等。

  • @GhostCat:我不会称其为仅链接的答案,链接只是您可以在网上找到的内容的示例。我相信这个答案的主要价值是提供 OP 正在寻找的正确术语 - 根据我的经验,当人们在 Go 中寻找 AOP 时,他们通常指的是中间件 (2认同)