我正在寻找一种干净的方法来对我的代码库进行增量更新,而又不破坏向后兼容性。这可能意味着向类中添加新成员,或更改现有成员以提供其他功能。有时,我需要以一种会破坏现有代码的方式来更改成员(例如重命名方法或更改其返回类型),因此在发布它们后,我不希望再碰到任何现有类型。
我目前设置的方法是通过继承和多态性,方法是创建一个扩展该类先前的“版本”的新类。
这种工作方式是根据StatusResult
属性的实际值创建适当的StatusResultVersion3
版本(例如ProtocolVersion
),并将其作为CommandResult
的实例返回。
因为.NET似乎没有类版本控制的概念,所以我不得不提出自己的想法:将版本号附加到类名称的末尾。毫无疑问,这会让您畏缩。我可以很容易地想象自己在放大图表后会ing起眼睛。但这行得通。我可以添加新成员并覆盖现有成员,而无需引入任何破坏代码的更改。
有没有更好的方法来对我的类(class)进行版本控制?
最佳答案
考虑现有代码和程序集更新时,通常有两种方法:
这是进行不间断更改的好方法,您可以在其中简单地重载函数以提供新参数等。VisualStudio具有一些非常高级的unit testing capabilities,可以使回归测试相对容易和自动化。
如果您的更改将开始破坏工作,例如重写某些实用程序的工作方式,那么该是新的程序集版本的时候了。 .NET非常适合使用程序集版本。您可以将版本化的程序集部署到不同的文件夹中,以便现有代码可以继续引用旧版本,而新代码可以利用新版本中的功能。
关于vb.net - 类版本控制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15073924/