1. 程式人生 > >Aha!設計模式(2)-抽象工廠(1)

Aha!設計模式(2)-抽象工廠(1)

《設計模式》的前兩章分別介紹設計模式的概要和一個應用例項。對於一個設計模式的初學者來講,應該不大好理解。

 

我們直接進入具體的設計模式。本文從抽象工廠模式說起。

 

名稱

 

在面向物件的世界裡,名稱具有很重要的含義。名稱一旦明確了,職責和行為差不多也就定了;反之如果沒有辦法為一個類,方法命名,往往就是職責和行為不清晰。

 

認真考慮名稱

 

具體到今天的題目抽象工廠,稍加擴充套件就是抽象的工廠類。在面向物件的領域中,抽象就意味著抽象類定義介面,具象類實現介面的同時還意味著對客戶隱藏具體實現。就憑這幾句話,大概可以的到下面的類圖。

 

 

學習設計模式,一個難點就是記不住圖,通過名稱記憶(回想?猜想)就是一個方法。這就是名稱的力量。

 

意圖

 

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

 

在本系列文章中藍色粗體就是《設計模式》中的原文,大師的話。我們當然應該認真解讀。頭半句說明可以建立的產品不止一個,而且相互有關係;後半句講不用指定具體的類,是說得到的產品實際上是該產品型別的具象類的物件。我們可以將這段描述中的資訊反應到類圖中:

 

 

圖中多出了兩個產品繼承和幾根依賴線。關於這幾根線說明了什麼,為什麼這麼畫,其實有它的必然性。大家可以先思考,我們下篇文章說明。

 

一句話總結

 

常問問為什麼有好處。

 

覺得本文有幫助?請分享給更多人。

閱讀更多更新文章,請掃描下面二維碼,關注微信公眾號【面向物件思考】