我正在寻找一种干净的方法来对我的代码库进行增量更新,而不会破坏向后兼容性。这可能意味着向类添加新成员,或更改现有成员以提供附加功能。有时我需要以一种会破坏现有代码的方式更改成员(例如,重命名方法或更改其返回类型),因此我宁愿在交付后不触及任何现有类型。
我目前设置的方式是通过继承和多态性,通过创建一个新类来扩展该类的先前“版本”。
其工作方式是根据属性的实际值创建StatusResult
(eg ) 的适当版本,并将其作为 的实例返回。StatusResultVersion3
ProtocolVersion
CommandResult
因为 .NET 似乎没有类版本控制的概念,所以我不得不自己想出:将版本号附加到类名的末尾。这无疑会让你畏缩。我可以很容易地想象自己在放大图表后会抓挠眼睛。但它有效。我可以添加新成员并覆盖现有成员,而无需引入任何代码破坏更改。
有没有更好的方法来版本我的课程?