背景:
我将开发依赖于快速变化的 API 和快速变化的数据模型的工具,我将对其零控制。
数据模型和 API 更改很常见,这里的问题是我的代码必须继续与当前和所有过去的版本一起使用(即 100% 反向兼容),因为所有这些都将继续在内部使用。
当它遇到丢失/未知的功能等时,它还必须优雅地降级。
这些工具将使用 C# 和 WinForms 编写,用于测试自定义硬件。
<Edit>
我的目标是只需要创建类来添加功能,当数据模型发生变化时,创建一组新的数据模型类,这些类将由基于 API 版本的工厂创建。
我面临的挑战是,未来的功能可能取决于特定的数据模型,这些模型可能会混合和匹配(直到达到最终组合)。你会如何优雅地处理这件事?
<Edit2>
当然,一旦产品交付,我想重用该工具并为新产品添加代码。在我开始之前,每个产品周期都意味着重写(从头开始)所有工具,我打算在未来防止这种情况:)
</Edit>
问题:
为了保持与 API/数据模型的多个版本的兼容性,您会建议或已成功使用哪些设计技术和模式?
我应该注意哪些陷阱?