Builder模式——專案中最常見的設計模式之一
阿新 • • 發佈:2019-01-09
Builder模式介紹
Builder模式是一種一步一步建立一個複雜物件的設計模式,我認為這種設計模式的精髓就主要有兩點:其一,使用者使用簡單,並且可以在不需要知道內部構建細節的情況下,就可以構建出複雜的物件模型;其二,對於設計者來說,這是一個解耦的過程,這種設計模式可以將構建的過程和具體的表示分離開來。
Builder模式的使用場景
1.相同的方法,不同的執行順序,產生不同的時間結果時。 2.多個部件或零件,都可以裝配到一個物件中,但是產生的執行結果又不同時。 3.產品類非常複雜,或者產品類中的呼叫順序不同產生了不同的作用,這個時候用建造者模式非常適合。 4.當初始化一個物件特別複雜,如引數多,切很多引數都具有預設值時。Builder模式分析
舉例說明
接下來在Person類的內部定義一個靜態的Builder類,並且定義對應的s1-s10方法,方法返回型別都是Builder 最後,增加一個build()方法,將所有的屬性都設定進去 這樣,含有多個引數的Builder模式的Person類就完成了,接下來我們看看用法。
程式碼的可讀性高了很多,試想一下如果new了一個Person類,建構函式裡傳了10個引數,看起來就非常頭疼,以後想改某一個值的話,還要去找程式碼看相應的含義。而Builder模式的可讀性就非常高,只需要去修改相應的Builder靜態類中的方法即可。
總結
Builder模式與傳統的模式相比,並不是完全勝出的,相比之下,Builder模式的程式碼量會比正常多不少,但是隨之帶來的好處是程式碼的可讀性和可維護性。但是,往往一個好的設計模式或架構,就是在犧牲某一種能力從而大大增強另一種能力,例如,犧牲一定的可讀性,增加專案的可擴充套件性等等這樣的方式。因此,在引數較為複雜,構造物件相對繁瑣的情況下,一定要首先考慮使用Builder模式。