使用Golang的策略模式模型

76 阅读1分钟

在这个例子中,我们将研究两种策略模式的实现,但它们都以稍微不同的方式实现了相同的结果。它们只是为不同的银行创建了代币。

这两种策略模式在现实世界的场景中都是有效的,所以 "重复的解决方案 "并不一定意味着它是一个糟糕的设计。这只是你如何处理这种商业案例。此外,两种模式都有其优势和劣势。

  • **所有的策略都以不同的方式处理相同的工作--**重复的解决方案,灵活的配置结构。由个别配置参数和具体策略管理。所有策略都可以有自己的配置结构。

  • **所有策略以相同的方式处理同一工作--**简单的解决方案,严格的配置结构。由配置参数管理,需要单一的具体策略。策略依赖于一种类型的配置结构。

这两个例子都依赖于请求对象中的ProviderName 参数。基于给定的值。

  • 第一个模型将请求转移到使用其自身配置的相关提供商实现/包(Barclays或Natwest)。

  • 第二个模型选择相关的配置并在共同的实现中使用它(access_token或refresh_token)。

所有策略都以不同的方式处理相同的工作

结构

├── main.go

文件

main.go
package main
欧比/access_token.go
package obie
欧比/provider.go
package obie
obie/barclays/config.go
package barclays
欧比/barclays/provider.go
package barclays
欧比/Natwest/config.go
package natwest
欧比/Natwest/config.go
package natwest

所有的策略都以相同的方式处理相同的工作

结构

├── main.go

文件

main.go
package main
obie/config.go
package obie
obie/client.go
package obie
欧比/access_token.go
package obie
欧比/refresh_token.go
package obie