原則二:遇到多個構(gòu)造器參數(shù)時考慮用建造者模式(構(gòu)建器)
- 多個構(gòu)造器參數(shù)的缺點:
- 產(chǎn)生多個構(gòu)造器方法关串,隨著參數(shù)的增加而增加
- 參數(shù)填寫順序錯誤難以檢查,當(dāng)多個參數(shù)的類型一樣時容易寫錯
- 替代方案之一:JavaBean模式
- 大量的setter是分開調(diào)用秒梅,在構(gòu)建過程中javabean可能處于不一致的狀態(tài),此時調(diào)用可能產(chǎn)生錯誤
- 無法對成員變量做成final
- 推薦方案:建造者模式
- 可避免填寫順序出錯
- 不會出現(xiàn)不一致性問題
- 成員變量可final
- 可在build()調(diào)用時檢查參數(shù)有效性,也可在setter時檢查
- 可以自動填充某些域牢酵,如每次創(chuàng)建對象自動增加序列號
- 建造者模式的缺點:
- 每次創(chuàng)建實例都要先創(chuàng)建一個builder
- 總結(jié):在使用構(gòu)造器或者靜態(tài)工廠方法時考慮建造者模式曼月,衡量參數(shù)的個數(shù)谊却,以及未來的拓展,如果參數(shù)較多哑芹、未來可能增加參數(shù)炎辨,那么使用建造者,后期維護(hù)容易些聪姿。