Effective Java(2):遇到多個構造器參數時考慮用構建器(Builder模式)

    靜態工廠方法和構造器有個共同的侷限性:它們都不能很好地擴展到大量的可選參數。安全

  1. 解決辦法之一重疊構造器:重疊構造器模式可行,可是當有許多參數的時候,客戶端代碼會很難編寫,而且扔難以閱讀。ui

  2. 解決辦法之二JavaBeans模式:經過調用一個無參構造器來建立對象,而後調用setter方法來設置參數。spa

  3. 解決辦法之三Builder模式:不直接生成想要的對象,而是讓客戶端利用全部必要的參數調用構造器(或靜態工廠方法),獲得一個builder對象,而後客戶端builder對象上調用相似於setter的方法,來設置每一個可選參數,最後客戶端調用無參的build方法來生成不可變的對象。這個builder是它構建的類的靜態成員類。對象



Builder模式適用於當生成一個對象時須要多個參數,特別是當大多數參數都是可選的時候。擴展

與傳統的重疊構造器模式相比,使用Builder模式的客戶端代碼將更易於閱讀和編寫,構建器也比JavaBeans更加安全。方法

相關文章
相關標籤/搜索