java 别名与重构方法

java alias vs refactor method

我有两种方法

public static void a()

public static void calla() { ... a(); ...}

每个都有几十个调用,我只需要将调用更改为 calla()(它将在内部调用 a())。

显而易见的方法是解决方案 1 - 重构所有调用 calla() 而不是 a()

但是解决方案 2 有什么好处吗: 将方法 a() 更改为 aInternal() 并添加将由 calla() 调用的别名?

好处是更改只会发生在 1 个文件中,不会导致不同文件中的许多更改 类。

解决方案 1:重构所有从 a()calla()

的调用

解决方案 2:public static void a() -> private static void aInternal()

和 (?) 创建一个 "alias" 方法 public static void a(){calla();}

合理的答案是:

private static void a()

public static void callA() { ... a(); ...}

通过这样做,您的意图绝对清楚,并且允许编译器帮助查找 a().

的所有用法

换句话说:任何界面都应该让做正确的事变得容易,而做错事却很难。因此,当您希望使用 callA() 时 - 请确保此方法是 唯一一个 可调用的方法。 公开可用方法aInternal()没有意义。更糟糕的是:周围有 a()aInternal() 肯定会 混淆 您的 API!

的用户

除此之外:您将 a() 设为私有 的事实已经 表达了 您打算将其设为 内部方法。因此:不要 "name space" 用于无意义的后缀,例如 internal。相反:使用表示方法背后的 功能 的名称 - 内部与外部可以使用修饰符 public/private 来表达。