builder和constructor的區別分別是:
1、builder:既能保證像重疊構造器那樣的安全,也能實現JavaBean模式那樣的可讀性。可以不必知道妳的內部構造是怎樣的,我可以直接使用Builder建造自己需要的客戶端;代碼清晰,易維護,易擴展;將構造和表示分離,降低耦合。
2、constructor:在constructor模式下,妳提供第壹個只有必要參數的構造器,第二個構造器有壹個可選參數,第三個有兩個可選參數,以此類推,最後壹個構造器包含所有的可選參數。
但是在constructor中當壹個類的參數多的情況下,使用重疊構造器模式客戶端代碼會很難編寫。
使用build模式的步驟:
不直接生成想要的對象,而是讓客戶端利用所有必要的參數調用構造器(或者靜態工廠),得到壹個build對象。
然後讓客戶端在build對象上調用類似的setter方法來設置每個相關的可選參數,最後,客戶端調用無參的build方法來生成不可變的對象。這個builder是它構建的靜態成員類。