《設計模式》的前兩章分別介紹設計模式的概要和乙個應用例項。對於乙個設計模式的初學者來講,應該不大好理解。
我們直接進入具體的設計模式。本文從抽象工廠模式說起。
名稱
在物件導向的世界裡,名稱具有很重要的含義。名稱一旦明確了,職責和行為差不多也就定了;反之如果沒有辦法為乙個類,方法命名,往往就是職責和行為不清晰。
認真考慮名稱
具體到今天的題目抽象工廠,稍加擴充套件就是抽象的工廠類。在物件導向的領域中,抽象就意味著抽象類定義介面,具象類實現介面的同時還意味著對客戶隱藏具體實現。就憑這幾句話,大概可以的到下面的類圖。
學習設計模式,乙個難點就是記不住圖,通過名稱記憶(回想?猜想)就是乙個方法。這就是名稱的力量。
意圖
提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。
在本系列文章中藍色粗體就是《設計模式》中的原文,大師的話。我們當然應該認真解讀。頭半句說明可以建立的產品不止乙個,而且相互有關係;後半句講不用指定具體的類,是說得到的產品實際上是該產品型別的具象類的物件。我們可以將這段描述中的資訊反應到類圖中:
一句話總結
常問問為什麼有好處。
Aha!設計模式 3 抽象工廠 2
動機 設計模式 引言中對於動機的說明如下 用以說明乙個設計問題以及如何用模式中的類 物件來解決該問題的特定情景。該情景會幫助你理解隨後對模式更抽象的描述。簡單地說 就是設計模式的應用例項。回到抽象工廠模式的動機。考慮乙個支援多種視感 look and feel 標準的使用者介面工具包,例如 moti...
Aha!設計模式 5 抽象工廠 4
結構 下圖為抽象工廠模式的類圖。這個類圖和前面出現過的類圖唯一的區別就是使用了更加抽象的類名。所以就不在重複說明了。這裡說說另乙個話題 畫類圖。抽象工廠模式的類圖可以按照以下步驟 當然不是絕對的 畫出 首先可以個畫出三個工廠類。為每個工廠類新增兩個產生產品的操作 方法。畫出兩個產品系列的繼承結構。新...
Aha!設計模式 7 抽象工廠 6
實 現 下面是實現abstract factor模式的一些有用技術 1 將工廠作為單件 乙個應用中一般每個產品系列只需乙個concretefactory的例項。因此工廠通常最好實現為乙個singleton 3.5 只有一句話,但是並沒有給出實現。為了說明這個問題,作者按照自己的理解,以前面提到的作業...