原則二:遇到多個構造器參數時考慮用建造者模式(構建器)
- 多個構造器參數的缺點:
- 產生多個構造器方法,隨著參數的增加而增加
- 參數填寫順序錯誤難以檢查,當多個參數的類型一樣時容易寫錯
- 替代方案之一:JavaBean模式
- 大量的setter是分開調用,在構建過程中javabean可能處于不一致的狀態,此時調用可能產生錯誤
- 無法對成員變量做成final
- 推薦方案:建造者模式
- 可避免填寫順序出錯
- 不會出現不一致性問題
- 成員變量可final
- 可在build()調用時檢查參數有效性,也可在setter時檢查
- 可以自動填充某些域,如每次創建對象自動增加序列號
- 建造者模式的缺點:
- 每次創建實例都要先創建一個builder
- 總結:在使用構造器或者靜態工廠方法時考慮建造者模式,衡量參數的個數,以及未來的拓展,如果參數較多、未來可能增加參數,那么使用建造者,后期維護容易些。