天天看點

Java九十條經驗法則之第二條:遇到多個構造器時要考慮使用建構器

一、重疊構造器模式

當我們的實體屬性過多時,采用重疊構造器也是一種不錯的選擇,具體例子如下:

Java九十條經驗法則之第二條:遇到多個構造器時要考慮使用建構器

Java九十條經驗法則之第二條:遇到多個構造器時要考慮使用建構器

這種方式有他固有的缺點,當參數非常多時,構造方法太多以緻于類無法更系統地管理

二、JavaBeans模式

當參數非常多時,上一種方式顯然不适用,這時我們可以使用JavaBeans模式,JavaBeans模式的模式就是用set的方式進行指派,這種方式代碼易懂,但是容易造成線程安全,因為指派的過程是由多條語句組成的,具體執行個體如下:

Java九十條經驗法則之第二條:遇到多個構造器時要考慮使用建構器
Java九十條經驗法則之第二條:遇到多個構造器時要考慮使用建構器

三、建造者模式

鑒于以上兩種方式都有響應的缺點,當建立參數過多的實體時,最适宜采用建造者模式,具體代碼如下:

Java九十條經驗法則之第二條:遇到多個構造器時要考慮使用建構器
Java九十條經驗法則之第二條:遇到多個構造器時要考慮使用建構器
Java九十條經驗法則之第二條:遇到多個構造器時要考慮使用建構器

四、總結

如果類的構造器或者靜态工廠中具有多個參數,設計這種類時,建造者模式是一種不錯地選擇