0
我在幾個引用跑到建設者圖案被實現爲單例:構建器模式如何使用單例實現?
從Wikipedia: Builder Pattern:「抽象工廠,建設者和原型可以在其實現使用辛格爾頓」
哪有建設者彭定康實現單身?當多個線程調用單身人士的構建器時,如何維護由buildParts()
創建的狀態?
我在幾個引用跑到建設者圖案被實現爲單例:構建器模式如何使用單例實現?
從Wikipedia: Builder Pattern:「抽象工廠,建設者和原型可以在其實現使用辛格爾頓」
哪有建設者彭定康實現單身?當多個線程調用單身人士的構建器時,如何維護由buildParts()
創建的狀態?
我不認爲建設者應該是單身。
如果你真的想我想你可以做這樣的事情:
public final class Builder{
private static final Builder instance = new Builder();
private Part part1= null;
private Part part2= null;
...
public static Builder getInstance() {
return instance;
}
private Builder() { /*singleton */ }
public Builder buildPart1(Part p){
part1 = p;
return this;
}
...build other parts similar;
Product getResult(){
return new ConcreteProduct(part1, part2 ...);
}
}
但通過重複使用相同的單個實例,你必須確保你正確,而不是將所有的值無意中重複使用以前生成的產品的舊值。
即使有正確的同步,我想從其他線程錯誤和意外的可能性/前建成生產值泄漏到你的產品就不能使它值得。
+1「我不認爲建設者應該是單身。」 – kevinpeterson
我同意,我不認爲它應該是單身人士。此外,我不能想出一種方法來實施它,並且仍然是安全的。 –