如何更改 public 方法签名以及有哪些风险?
How to change a public method signature and what are the risks?
我有一个很少被第三方客户使用的旧方法,我想更改它的签名(主要是重命名)。
我应该怎么做?有什么风险?有什么真正的优势吗?
一个简单的例子:
Class Program
{
public void OldMethodName(var oldVarName)
{
//Do something
}
}
改为
Class Program
{
public void NewMethodName(var newVarName)
{
//Do the same thing
}
}
当你的 API 在 public 使用时,你应该分两个阶段重构它:
- 发布一个 API 都可用的版本 - 这个版本的 API 应该使新方法可用,并且 弃用 旧方法。这将使您的客户有时间进行迁移。
- 等待一段时间后,发布一个删除了弃用方法的版本 - 如果可能,请与您的客户协调此版本以确保他们已迁移到使用新方法。
有关如何弃用方法的信息,请参阅 this Q&A。
除了修复当前或潜在的命名冲突之外,更改 public 方法的签名没有任何优势。
我有一个很少被第三方客户使用的旧方法,我想更改它的签名(主要是重命名)。
我应该怎么做?有什么风险?有什么真正的优势吗?
一个简单的例子:
Class Program
{
public void OldMethodName(var oldVarName)
{
//Do something
}
}
改为
Class Program
{
public void NewMethodName(var newVarName)
{
//Do the same thing
}
}
当你的 API 在 public 使用时,你应该分两个阶段重构它:
- 发布一个 API 都可用的版本 - 这个版本的 API 应该使新方法可用,并且 弃用 旧方法。这将使您的客户有时间进行迁移。
- 等待一段时间后,发布一个删除了弃用方法的版本 - 如果可能,请与您的客户协调此版本以确保他们已迁移到使用新方法。
有关如何弃用方法的信息,请参阅 this Q&A。
除了修复当前或潜在的命名冲突之外,更改 public 方法的签名没有任何优势。