第三章 抽象工廠模式 (Abstract Factory Pattern)

1.簡介

  • 抽象工廠模式(Abstract Factory Pattern)是圍繞一個超級工廠創(chuàng)建其他工廠。該超級工廠又稱為其他工廠的工廠。這種類型的設(shè)計模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式。

  • 在抽象工廠模式中,接口是負責創(chuàng)建一個相關(guān)對象的工廠,不需要顯式指定它們的類。每個生成的工廠都能按照工廠模式提供對象。

2.場景

  1. 服裝店中的衣服,比如說有商務裝(成套,一系列具體產(chǎn)品)、時尚裝(成套,一系列具體產(chǎn)品),甚至可能有商務女裝、商務男裝、時尚女裝、時尚男裝,這些也都是成套的,即一系列具體產(chǎn)品。假設(shè) 某一個衣柜(具體工廠)只能存放某一種這樣的衣服(成套,一系列具體產(chǎn)品),每次拿這種成套的衣服時也自然要從這個衣柜中取出了。所有的衣柜(具體工廠)都是衣柜類的(抽象工廠)某一個,而每一件成套的衣服又包括具體的上衣(某一具體產(chǎn)品),褲子(某一具體產(chǎn)品),這些具體的上衣其實也都是上衣(抽象產(chǎn)品),具體的褲子也都是褲子(另一個抽象產(chǎn)品)。
  2. 數(shù)據(jù)庫(抽象工廠),下面有mysql,oracle(具體工廠),抽象工廠生產(chǎn)user,dept(抽象產(chǎn)品)兩種,mysql具體工廠生產(chǎn)m-user和m-dept兩種具體產(chǎn)品,oracle具體工廠生產(chǎn)o-user和o-dept兩種具體產(chǎn)品。以后如果需要用mysql數(shù)據(jù)庫,那么就生產(chǎn)mysql工廠生產(chǎn)的產(chǎn)品。
  3. 抽象工廠模式也就是不僅生產(chǎn)鼠標,同時生產(chǎn)鍵盤。也就是 PC 廠商是個父類,有生產(chǎn)鼠標,生產(chǎn)鍵盤兩個接口。戴爾工廠,惠普工廠繼承它,可以分別生產(chǎn)戴爾鼠標+戴爾鍵盤,和惠普鼠標+惠普鍵盤。創(chuàng)建工廠時,由戴爾工廠創(chuàng)建。后續(xù)工廠.生產(chǎn)鼠標()則生產(chǎn)戴爾鼠標,工廠.生產(chǎn)鍵盤()則生產(chǎn)戴爾鍵盤。

3. 抽象工廠模式模型圖

1530601916-7298-DP-AbstractFactory.png

4. 抽象工廠模式代碼實現(xiàn)

image.png

image.png

image.png

image.png
image.png

image.png

image.png
image.png

image.png

5. 抽象工廠模式和工廠方法模式區(qū)分

只有一個user類和user操作類的時候,是需要工廠方法模式,如果加上dept等等,就形成了抽象工廠方法模式。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 新的一天開始了,唉又大了;今天因為操作失誤,股票少賺了100多,尼瑪看來是天意,不過好歹也收益270多只要賺就行,...
    博爾特uncle閱讀 335評論 0 1
  • 概念 圍繞一個超級工廠創(chuàng)建其他工廠。此超級工廠又稱為其他工廠的工廠。屬于創(chuàng)建型模式。 使用場景 QQ換膚(一整套一...
    意大利大炮閱讀 251評論 0 0
  • 一、工廠模式簡介 1. 定義 工廠模式(Factory Pattern)是Java中常用的設(shè)計模式之一,這種設(shè)計模...
    lxbnjupt閱讀 529評論 0 0
  • 我的脾氣,簡直就是暴力與血腥。起殺生之念,貓爺說這叫無名火。 其實歸根結(jié)底還是自己的心量沒有打開,如果你真的心容萬...
    丹靈雅音閱讀 232評論 2 1
  • 最近楚天雨不絕,陰云不散無溫暖,海底秀針難發(fā)現(xiàn),不畏泥潭出不來。 時光流水可忘懷,不知時河已結(jié)冰,百年回頭才醒悟,...
    落葉秋水寒梅骨閱讀 183評論 0 0

友情鏈接更多精彩內(nèi)容