設(shè)計(jì)模式-工廠

工廠模式有那幾種,
各模式的弊端和優(yōu)越性

1. 簡(jiǎn)單工廠模式

屏幕快照 2017-07-14 下午3.48.19.png

在新加一個(gè)product時(shí),需要新家一個(gè)繼承IProduct的產(chǎn)品類,并且去修改Factory類里創(chuàng)建對(duì)象的邏輯,加一個(gè)case語句,修改的是工廠類,上層客戶端是不需要修改的。只需要針對(duì)新產(chǎn)品調(diào)用工廠類的創(chuàng)建方法創(chuàng)建新產(chǎn)品就可以了

優(yōu)點(diǎn):工廠中包含了必要的邏輯判斷,根據(jù)客戶端選擇條件動(dòng)態(tài)實(shí)例化相關(guān)的類,在客戶端來說去除了與具體產(chǎn)品的依賴。
缺點(diǎn):1.違背了開放-封閉原則,每次添加新產(chǎn)品時(shí)需要在工廠類中加一個(gè)邏輯判斷。把邏輯引入到更上層的客戶端。

  1. 在調(diào)用工廠類方法創(chuàng)建了好幾個(gè)對(duì)象時(shí),需要修改對(duì)象類型時(shí),需要修改多處代碼
![Uploading 屏幕快照 2017-07-14 下午4.13.14_135823.png . . .]

2.工廠方法模式

屏幕快照 2017-07-14 下午3.56.51.png

與簡(jiǎn)單工廠相比,多了一個(gè)工廠的抽象類,各種工廠繼承這個(gè)抽象類,實(shí)現(xiàn)接口。客戶端使用對(duì)象時(shí),根據(jù)自己的需求調(diào)用不同的工廠類進(jìn)行創(chuàng)建對(duì)象。

優(yōu)點(diǎn):添加新產(chǎn)品時(shí),整個(gè)工廠和產(chǎn)品體系沒有做修改,只是進(jìn)行了一些擴(kuò)展
要修改產(chǎn)品類型時(shí),只需要修改一處就可以了


屏幕快照 2017-07-14 下午4.13.14.png

缺點(diǎn):每加一個(gè)產(chǎn)品不單要加產(chǎn)品類,還需要加一個(gè)產(chǎn)品工廠的類

3. 抽象工廠模式

屏幕快照 2017-07-14 下午4.28.46.png

抽象工廠模式提供一個(gè)創(chuàng)建一系列相關(guān)或相互依賴對(duì)象的接口,而無需制定她們的具體的類

為了創(chuàng)建不同的產(chǎn)品對(duì)象,客戶端需要?jiǎng)?chuàng)建不同的產(chǎn)品工廠

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

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

  • 設(shè)計(jì)原則: 要依賴抽象,不要依賴具體類 目錄 本文的結(jié)構(gòu)如下: 什么是工廠方法模式 為什么要用該模式 模式的結(jié)構(gòu) ...
    w1992wishes閱讀 1,428評(píng)論 0 6
  • 工廠方法模式 介紹 簡(jiǎn)單工廠模式雖然簡(jiǎn)單,并且實(shí)現(xiàn)了創(chuàng)建和使用分離的功能,但存在一個(gè)很嚴(yán)重的問題。當(dāng)系統(tǒng)中需要引入...
    666真666閱讀 307評(píng)論 0 1
  • 設(shè)計(jì)模式匯總 一、基礎(chǔ)知識(shí) 1. 設(shè)計(jì)模式概述 定義:設(shè)計(jì)模式(Design Pattern)是一套被反復(fù)使用、多...
    MinoyJet閱讀 4,074評(píng)論 1 15
  • 概述 先照搬書上工廠模式的定義,即定義一個(gè)用于創(chuàng)建對(duì)象的接口,讓子類決定實(shí)例化哪一個(gè)類,工廠方法使一個(gè)類的實(shí)例化延...
    ymjkMaster閱讀 540評(píng)論 0 0
  • 聽過這樣一句話,你怎么過一天就會(huì)怎么過一輩子。初聽這話未免覺得有些夸大其詞,但最近偶然讀了豐子愷先生的《漸》這篇文...
    是八復(fù)呢閱讀 374評(píng)論 0 0

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