抽象工廠模式

2021-07-10 01:16:24 字數 933 閱讀 4888

關於這個問題,我們可以採用設計模式那本書裡面對設計模式的一些規定來介紹。

意圖

提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。

別名 kit

動機 解決類似於軟體的不同檢視風格的問題。

這是設計模式書給出的關於抽象工廠的介紹。在對其意圖的描述當中,涉及到一系列相關或相互依賴物件。這裡應該怎樣理解這裡所說的相關或相互依賴呢?

首先應當明確的是,這些物件一定不屬於同乙個型別(type),如果需要產生一系列同一型別的物件,那麼可以使用工廠模式來產生。(這裡使用的是型別,類和型別的區別,乙個簡要的解釋就是:class is a type,type describe objects, references and functions.)這也是抽象工廠模式和工廠模式的最大不同,抽象工廠產生的一系列物件屬於不同的型別,而工廠模式產生的物件都屬於同乙個型別。

既然已經明確了他們之間肯定是不同型別的物件,現在我們就應該著眼於相關或相互依賴。這也說明了抽象工廠產生的物件一定是有相互關係的,不能是毫無關係的一系列物件。我對於這部分的理解是,這裡的相關和相互依賴應該是軟體設計層面上的相關或相互依賴,而不是單純的**上面的相關。**層面可以相去甚遠,就比如我們在設計軟體的時候,可以把相關的元素設計成同乙個系列的,但是他們的表現形式可以有很大的不同。

舉個簡單的例子,在文件編輯器裡面、文字和音訊等可以看成是同乙個系列的物件,可以使用乙個抽象工廠來生成。

最主要的優點就是可以在類的內部對產品族進行約束。所謂的產品族,一般或多或少的都存在一定的關聯,抽象工廠模式就可以在類內部對產品族的關聯關係進行定義和描述,而不必專門引入乙個新的類來進行管理。

設計模式的主要作用是降低程式的耦合度,增加各部分的可復用性。我們一定要著眼於這個目標,而不是濫用設計模式。因為設計模式一般都會降低程式的執行效率,所以在確定能給程式帶來好的時候才使用相應的設計模式。

抽象工廠模式 抽象工廠模式

抽象工廠模式其實是圍繞了乙個超級工廠建立其他的工廠 可參考工廠模式 這個超級工廠又可以想像成是其他工廠的工廠,這種設計模式是一種建立型模式。在抽象工廠模式中,介面是負責建立乙個相關物件的工廠,不需要顯式指出其類。每個生成的工廠都能按照工廠模式提供物件。意圖提供乙個建立一系列相關或相互依賴物件的介面,...

工廠模式 抽象工廠模式

這裡使用簡單的話來講解工廠模式,不涉及程式設計 什麼是工廠模式呢?我的理解是對抽象介面例項的封裝。假如有乙個介面,有若干的實現類,代表不同的例項。傳統產生物件的方法是直接new乙個出來,對於每個例項都要new,當實現介面的類較多時會很麻煩,並且類的實現也暴露出來了。工廠模式是一種產生物件的模式,使用...

工廠模式 抽象工廠模式

子類父類代換 場景 在不同的條件下,需要建立不同的實現子類時。如網路通訊可以使用tcp udp。可以實現同乙個介面,通過工廠類根據條件 tcp或udp 來例項化不同的子類。這些子類符合黎克特制代換原則。public inte ce tlprotocol public class tcpimpleme...