我正在编写一些代码来使用一些api的两个不同版本.这些版本中的每一个都在版本化的包中声明,例如{v1.Connection,v1.query,v1.Result}和{v2.Connection,v2.query,v2.result}等.除了类之外,客户端代码将完全相同是不同的.我可以在这里申请什么设计模式?我无法控制api方面.
我不确定这是否是一个特定的设计模式或设计模式的组合(这些天我真的只知道几个,如状态(机器),策略和其他一些),但使用基本对象面向设计原则我会采用以下方法:
这使您能够在将来添加更多版本,根据需要更改它们,并保留依赖于抽象的客户端代码,而不是与底层实现耦合.