Init方法应该在getInstance还是构造函数中?

时间:2013-12-17 16:14:56

标签: java

我有getInstance和同一个类中的构造函数,但我不确定我在哪里放置Init方法。

public class UploadService {   
    private Eng mEng;
    private Context mContext;
    private static UploadService INSTANCE;
    private String appDir;

    public static UploadService getInstance(Context context) {
        if (null == INSTANCE) {
            INSTANCE = new UploadService(context);
        }
        return INSTANCE;    
    }

    public UploadService(Context context) {
        this.mContext = context;
        appDir=V8Utils.getAppDir(context);
    }

    public void init(Context cxt) {
        mEng = new Eng(cxt);
        mEng.init(appDir);

    }
}

1 个答案:

答案 0 :(得分:2)

我会

  • init()标记为私有方法。
  • 在构造函数中调用它,因为它正在使用UploadService对象初始化Context对象的状态。

我的意思是:

public UploadService(Context context) {
    this.mContext = context;
    appDir=V8Utils.getAppDir(context);
    init(context);
}

private void init(Context cxt) {
    mEng = new Eng(cxt);
    mEng.init(appDir);

}