設計模式 建立型03 抽象工廠

2021-06-20 00:10:16 字數 1329 閱讀 2507

一,動機

在工廠方法模式中,具體工廠負責產生具體的產品,每個具體工廠對應一種具體產品。但是有時候,乙個工廠需要提供多個產品物件,而不是單一。對於學校,不僅能培養本科生,研究生,還能培養博士生。這個時候,工廠方式模式就顯得不夠用。

引入兩個概念:

1,產品等級結構。即產品的繼承結構。所有學校的 本科生,都是乙個等級結構。

2,產品族。指同一工廠產生的一組產品。本科生,研究生等就是乙個產品族。

二,定義

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

三,模式結構

1,factory(抽象工廠)

規定子工廠的統一介面

2,concretefactory(具體工廠)

實現各個子工廠的具體邏輯。

3,abstractproduct(抽象產品)

工廠所建立的所有物件的父類

4,concreteproduct(具體產品)

子工廠建立的具體產品

四,**例項

#include using namespace std;

class undergraduate

;class postgraduate

;class school

;class undergraduatea: public undergraduate

輸出:

這裡是學校aa

畢業了乙個研究生

這裡是學校bb

畢業了乙個本科生

缺點:在新新增產品物件時,難以擴充套件抽象工廠來生成新產品。因為抽象工廠中已經規定了產品的介面。要支援新的產品,涉及到對工廠角色的修改

設計模式 建立型設計模式 03 抽象工廠(php)

建立型設計模式 抽象工廠 抽象工廠模式 abstract factory 是所有形態的工廠模式中最為抽象和最具一般性的工廠模式。抽象工廠模式可以向客戶端提供乙個介面,是的客戶端在不必指定產品的具體型別的情況下,能夠建立多個產品族的產品物件。要理解抽象工廠模式,必須理解以下2個概念 產品等級結構 產品...

設計模式 建立型 抽象工廠

pragma once ifndef abstractfactory h define abstractfactory h 抽象基類abstractproducta,代表產品a 的抽象 class abstractproducta virtual abstractproducta 派生類concre...

建立型設計模式 抽象工廠

抽象工廠模式 abstractfactory 每乙個模式都是針對一定問題的解決方案,工廠方法模式針對的是乙個產品等級結構 而抽象工廠模式針對的是多個產品等級結果。產品族 是指位於不同產品等級結構中,功能相關聯的產品組成的家族。一般是位於不同的等級結構中的相同位置上。每乙個產品等級結構中有多少個具體的...