抽象工廠模式
前言
為了說明抽象工廠模式引入的背景,首先了解工廠方法模式(工廠模式)的類圖。在工廠方法模式中針對一組産品類構造了另一組工廠類,并且工廠類和産品類有相同的結構。假如現在有兩種以上具有相同結構的産品類,是否還可以使用工廠模式呢?
例如:有3 組産品類,鞋(Shoe)、西服(Suit)和領帶(Tie),每個産品都分為男女兩類。那麼此時是否還可以使用工廠模式呢?
概念
抽象工廠模式(Abstract Factory Pattern)隸屬于設計模式中的建立型模式,用于産品族的建構。抽象工廠是所有形态的工廠模式中最為抽象和最具一般性的一種形态。抽象工廠是指當有多個抽象角色時使用的一種工廠模式。抽象工廠模式可以向用戶端提供一個接口,使用戶端在不必指定産品的具體情況下,建立多個産品族中的産品對象。
類設計圖
抽象工廠模式設計類圖——兩個産品類的情況:

介紹
1. 抽象工廠模式中包含
- 一系列互相有關聯的産品類,這些産品類有相同的結構。
- 一系列實的工廠類,實作由抽象工廠類提供的接口。每個實的工廠類生産一組相關的産品類的對象。
應用場景
例:設計一個房屋銷售查詢系統,以便查詢不同類型的房屋的介紹、價格和位址等。為簡單起見,隻考慮兩種的房屋類型:别墅(House)和較高價的電梯大廈(Condo)。并且假設每種房屋類型都包含:豪華(Super)、中等(Medium)和經濟(Economy)三種。
1. 類設計圖:
房屋銷售查詢系統——抽象工廠模式的應用:
2. 代碼:
代碼連結:【例2.4】-抽象工廠模式-房屋資訊
不積跬步無以至千裡,不積小流無以成江海