我正在阅读项目的代码库,下面是一些我无法理解的代码:

protected BaseApiCommand(String apiName, ApiParams params, boolean isGetRequest) {
    this.apiName = apiName;
    this.apiParams = params;
    this.isGet = isGetRequest;
    if (apiParams == null) {
        apiParams = new ApiParams();
    }
}

public static BaseApiCommand createCommand(String apiName, boolean isGet, ApiParams params) {
    return new BaseApiCommand(apiName, params, isGet);
}


我知道这与发布有关,但是我只是不明白为什么直接公开构造函数是不安全的。谁能详细解释一下?

最佳答案

实际上,正如Joshua Bloch在Effective Java中所提出的那样,静态函数是该类的静态工厂方法。这是Java语言中的一种非常常见的模式,可以保护构造函数免受类使用者的侵害。

07-26 08:50