我喜欢在创建函数时为public helpers
创建private members
。我做了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); }
答案 0 :(得分:0)
虽然辅助类可能是一个快速解决方案,但您仍然将实现耦合到您正在公开的类(“调用者”类)。创建接口是为了创建您打算创建的抽象(即从公共视图隐藏私有实现),但增加了灵活性:
这是我的建议:
MyObjectImpl.java - >实现MyObject.java
private Object createObjectNotInitialized( String name ){
return new Object();
}
private Object createObjectInitialized( String name ){
Object newObj = new Object();
newObj.setName( name );
return newObj;
}
public Object createObject( String name, boolean doInit ){
if( doInit ){
return createObjectInitialized(name);
}else{
return createObjectNotInitialized(name);
}
}
// you can chose to init objects by default - I chose not to for this example
public Object createObject( String name ){
return createObjectNotInitialized(name);
}
MyObject.java - >接口
Object createObject( String name, boolean doInit );
Object createObject( String name );
Caller.java 调用类
MyObject myObj = new MyObjectImpl();
Object o = myObj.createObject( "Hello" );