1. 程式人生 > >設計模式-抽象工廠

設計模式-抽象工廠

區別 新的 com 客戶 img 產品族 產品 info 創建

一、定義:

抽象工廠提供了一個創建一系列相關或相互依賴的接口

無效指定他們的類

類型:創建型

二:適用場景

客戶端(應用層)不依賴於產品類實例如何被創建、實現等細節

強調一系列相關產品對象(屬於同一產品族)一起使用創建對象需要大量重復的代碼

提供一個產品類的庫,所有的產品以同樣的接口出現,從而使客戶端不依賴於具體實現

三、優點:

具體產品在應用層代碼隔離,無須關心創建細節

將一系列的產品族統一到一起創建

四、缺點

規定了所有可能被創建的產品集合,產品族中擴建新的產品困難,需要修改抽象工廠的接口

增加了系統的抽象性和理解難度

五、產品等級結構與產品族

技術分享圖片

工廠方法和抽象工廠最大的區別

工廠方法針對的產品等級結構

抽象工廠針對的是一個產品族

圖下圖: 增加了一個具體工廠

技術分享圖片

六:Coding

設計模式-抽象工廠