我學習Java並想知道下面的類初始化實現是否有任何區別。類初始化的兩種方式有什麼區別?
[選項1]
public class LaunchHandler implements SomeItf{
public static LaunchHandler create(ArrayList<String> params){
LaunchHandler self = new LaunchHandler(params);
return self;
}
private LaunchHandler(ArrayList<String> params){
mParams = params;
}
}
所以我稱其爲:
SomeItf launch = LaunchHandler.create(params);
[選項2]
public class LaunchHandler implements SomeItf{
public LaunchHandler(ArrayList<String> params){
mParams = params;
}
}
我稱其爲:
SomeItf launch = new LaunchHandler(params);
對於我來說這兩個選項都是一樣的,但是第一個選項我在大項目中看到了。
第一選項的優點是什麼?
有人能傳播光嗎?
你必須有一切的工廠方法。 [企業質量代碼,在這裏。](https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition) –
其他重複:http://stackoverflow.com/questions/194496/static-factory-methods-vs-instance-normal-構造函數http://softwareengineering.stackexchange.com/questions/240351/using-a-simple-static-factory-vs-instantiating-directly-new-thing-vs-factor – assylias