【发布时间】:2014-06-10 17:29:57
【问题描述】:
我喜欢在创建函数时为private members 创建public helpers。我做了一个public helper
public void create(String key, String value) { ... }
private member
private void create(String key, String value) { ... }
现在,我正在重载 private member,并且知道我需要在 Java 中这样做
- 方法签名(类型或数量)
而且我无法通过返回类型重载。因此,我决定修改我的private member 以接受布尔参数。
private void create(String key, String value, boolean status) { ... }
我承认这个参数不是我打算使用或考虑的。我是否自满于接受糟糕的编码行为?
public helper 仅调用 private member 传递提供的参数
public void create(String key, String value) { create(key, value, true); }
【问题讨论】:
-
不确定我是否理解你想要做什么,你能分享完整的代码吗?你想超载什么?
-
“私人会员”的“公共助手”?不是反过来吗?
-
两种“创建”方法是否具有相同的逻辑?如果它们在逻辑上不同,为什么不使用反映它们不同行为的不同名称?
-
使用接口怎么样?公开的方法默认是公开的,而私有方法可以保持私有
-
如果一种方法只调用另一种方法,那有什么意义呢?如果你能做到这一点,你将做与公开私有方法完全相同的事情(除了增加另一个方法调用的开销,直到它被优化)。您没有以任何方式改进封装或抽象。为了回答这个问题,是的,添加一个仅允许您覆盖同名方法的参数将是不好的。如果您真的想这样做,使用不同的名称会更好。例如。 @AmirAfghani 的建议,或者有些人使用
_create之类的东西
标签: java overloading standards