基于数据版本的类命名

时间:2011-08-12 12:26:55

标签: .net naming-conventions

我有一个库,用于解析从多个设备以二进制形式发送的各种消息。设备仍在积极开发中,并且它们的固件经常更改,这迫使我支持所有现有版本的协议的不同变体。

假设修订前的消息如下所示:

INFO XXXX YYYY CRC

在固件版本50之后,它变为:

INFO XXXX YYYY ZZZZ CRC

命名我的解析器类是否有意义:

class InfoParser : IParser<IInfoMessage>
{ ... }

class InfoParserRev50 : IParser<IInfoMessage> 
{ ... }

他们都在做类似的事情,他们需要共存,而这些变化一直在发生,但我想知道是否有更好的方法来命名它们?

1 个答案:

答案 0 :(得分:2)

如果您需要同时支持不同版本的解析,我认为维护不同版本的类是完全可以接受的。您可以将其与某种调度逻辑相结合,将它们组合在一起。通过这种方式,您可以同时支持多个版本,并避免在规范发展时可能与尝试专门化解析器相关联的问题,例如:例如,非法嵌套和if if语句。