gpt4 book ai didi

design-patterns - 对于具有完全相同用法的两组不同的类应用什么设计模式

转载 作者:行者123 更新时间:2023-12-03 07:03:15 26 4
gpt4 key购买 nike

我正在编写一些代码来使用某些 api 的两个不同版本。每个版本都在版本化包中声明,例如 {v1.Connection, v1.query, v1.Result} 和 {v2.Connection, v2.query, v2.result} 等。除了类之外,客户端代码将完全相同是不同的。我可以在这里应用什么设计模式?我无法控制 api 端。

最佳答案

我不确定这到底是一种设计模式还是设计模式的组合(这些天我真正记住的只有几种,比如状态(机器)、策略和其他一些模式),但是使用基本的面向对象设计原则,我将采取以下方法:

  • 在 v1 和 v2 类之上构建一个抽象层(包装类(可能是抽象的)或接口(interface))
  • 通过构造函数注入(inject)或可能通过属性将 v1 或 v2 类注入(inject)包装类,以便提供各种方法等的实际实现。
  • 使用某种工厂(或者可能是 IOC 容器)来控制要注入(inject)的类的版本。

这使您能够在将来添加更多版本,根据需要更改它们,并使依赖于抽象的客户端代码减少与底层实现的耦合。

关于design-patterns - 对于具有完全相同用法的两组不同的类应用什么设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25747472/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com