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