java alias vs refactor方法

问题描述 投票:0回答:1

我有2种方法

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()

和(?)创建一个“别名”方法public static void a(){calla();}

java refactoring alias
1个回答
1
投票

合理的答案是:

private static void a()

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

通过这样做,你的意图绝对清晰,并允许编译器帮助查找a()的所有用法。

换句话说:任何界面都应该能够轻松做正确的事情,并且很难做错事。因此,当您想要使用callA()时 - 请确保此方法是唯一可以调用的方法。拥有公开可用的方法aInternal()是没有意义的。更糟糕的是:拥有a()aInternal()是一种让您迷惑API的用户的可靠方法!

除此之外:你使a()私有的事实已经表达了你的意图,使其成为一种内部方法。因此:对于像内部这样无意义的后缀,不要是“名称空间”。相反:使用表示方法背后功能的名称 - 内部对外部可以使用修饰符public / private表示。

© www.soinside.com 2019 - 2024. All rights reserved.