How to change a public method signature and what are the risks?
我有一个旧方法,很少被第三方客户机使用,我想更改它的签名(主要是重命名)。
我该怎么做?风险是什么?有什么真正的优势吗?
一个简单的例子:
1 2 3 4 5 6 7 | Class Program { public void OldMethodName(var oldVarName) { //Do something } } |
改为
1 2 3 4 5 6 7 | Class Program { public void NewMethodName(var newVarName) { //Do the same thing } } |
当您的API处于公共用途时,您应该分两个阶段对其进行重构:
- 发布两个API都可用的版本-此版本的API应使新方法可用,并拒绝使用旧方法。这将为您的客户机提供迁移时间。
- 等待一段时间后,发布一个删除了不推荐方法的版本-如果可能,请与您的客户机协调此版本,以确保他们已使用新方法迁移到。
有关如何取消预测方法的信息,请参阅此问题解答。
除了修复当前或潜在的命名冲突之外,更改公共方法的签名没有任何好处。