建立類模式主要關注物件的建立過程,將物件的建立過程進行封裝,使客戶端可以直接得到物件,而不用去關心如何建立物件。建立類模式有5種,分別是:
為什麼需要建立性模式
首先,在程式設計中,物件的建立通常是一件比較複雜的事,因為,為了達到降低耦合的目的,我們通常採用面向抽象程式設計的方式,物件間的關係不會硬編碼到類中,而是等到呼叫的時候再進行組裝,這樣雖然降低了物件間的耦合,提高了物件復用的可能,但在一定程度上將組裝類的任務都交給了最終呼叫的客戶端程式,大大增加了客戶端程式的複雜度。採用建立類模式的優點之一就是將組裝物件的過程封裝到乙個單獨的類中,這樣,既不會增加物件間的耦合,又可以最大限度的減小客戶端的負擔。
其次,使用普通的方式建立物件,一般都是返回乙個具體的物件,即所謂的面向實現程式設計,這與設計模式原則是相違背的。採用建立類模式則可以實現面向抽象程式設計。客戶端要求的只是乙個抽象的型別,具體返回什麼樣的物件,由建立者來決定。
再次,可以對建立物件的過程進行優化,客戶端關注的只是得到物件,對物件的建立過程則不關心,因此,建立者可以對建立的過程進行優化,例如在特定條件下,如果使用單例模式或者是使用原型模式,都可以優化系統的效能。
總結
所有的建立類模式本質上都是對物件的建立過程進行封裝。
Python實現設計模式 建立類設計模式
抽象工廠是什麼 抽象工廠是為了提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。例子我建立了乙個抽象工廠類,它的表現取決於我們選擇什麼工廠來初始化它。例子中,抽象工廠類是寵物店 petshop 它有乙個動作 show pet 用來展示動物,我們如果用貓 cat 初始化寵物店,展示時...
Java設計模式 建立型 工廠模式
甲公司說他們需要一批商品,乙公司說你需要什麼商品,我們都有。但是甲公司還沒有確定是否找乙公司合作,所以具體需要什麼商品還沒有詳談,可以做什麼也不知道,但是對於商品的需求是明確的。public inte ce product雖然甲公司還沒有確定找乙公司合作,但是生產商品的工廠,乙公司還是要有的,如果連...
Java類的設計模式(二)工廠模式
舉例一 現在有乙個任務task,有任務型別 txt to mysql mysql to txt mongo to txt 任務引數,根據不同的任務型別去處理引數並且呼叫不同的util方法。普通的寫法會是 if txt to mysql equals type if mysql to txt equa...