处理版本控制的设计模式

Design Patterns to Handle Versioning

我正在构建引用一个 DLL 的软件,其中包含 ~10 类 每个代表一条消息。每条消息都包含特定于该消息类型的字段。每六个月左右对每种消息类型进行一次更新,我希望使软件足够灵活以顺利处理这些转换。我希望能够从 GUI 的下拉菜单中 select 一个版本和一个消息类型,然后它会引用该消息类型的给定版本。我有一份四人组文本,正在尝试找到适合此任务的解决方案。任何帮助将不胜感激。

你可以看看Memento pattern。它可以帮助您 UI 客户端中的下拉菜单。

to be able to select a version and a message type from a drop down menu in the GUI which would then reference the given version of that message type.

最后一个选项可以是当前的.dll 版本。当需要检查源对象的状态时,可以从源对象请求 Memento。客户端是 Memento 的 "care-taker",但只有源对象可以从 Memento 存储和检索信息(Memento 是 "opaque" 到客户端和所有其他对象)。如果客户端随后需要 "rollback" 源对象的状态,它将 Memento 交还给源对象以进行恢复。 Command 很自然。

回滚部分可以使用命令模式,如上所述。 然后您可以将 POJO 用于消息。由于 POJO 特性会发生变化,您可以使用 Adapter 或 Decorator 模式在 POJO 中进行更改,或者您可以直接更改 POJO class,或者您可以将 POJO class 扩展为新的 POJO classes。其余的你可以按照@ekostadinov 提到的进行操作。