一張圖搞定Java設(shè)計(jì)模式——工廠模式! 就問(wèn)你要不要學(xué)!

小編今天分享的內(nèi)容是Java設(shè)計(jì)模式之工廠模式。

收藏之前,務(wù)必點(diǎn)個(gè)贊,這對(duì)小編能否在頭條繼續(xù)給大家分享Java的知識(shí)很重要,謝謝!文末有投票,你想了解Java的哪一部分內(nèi)容,請(qǐng)反饋給我。

獲取學(xué)習(xí)資源,更多源碼,視頻,知識(shí)點(diǎn)講解!歡迎加入Java學(xué)習(xí)交流群616959444,我們一起學(xué)Java!

工廠模式簡(jiǎn)介

實(shí)例化對(duì)象,用工廠方法代替new操作。

實(shí)現(xiàn)類(lèi)、創(chuàng)建對(duì)象統(tǒng)一管理和控制。從而實(shí)現(xiàn)了創(chuàng)建者和調(diào)用者的分離。

詳細(xì)類(lèi)分類(lèi):

簡(jiǎn)單工廠模式:用來(lái)生產(chǎn)同一等級(jí)結(jié)構(gòu)中的任意產(chǎn)品。(對(duì)于增加新的產(chǎn)品,需要修改已有代碼)

工廠方法模式:用來(lái)生產(chǎn)同一等級(jí)結(jié)構(gòu)中的固定產(chǎn)品。(支持增加任意產(chǎn)品)

抽象工廠模式:用來(lái)生產(chǎn)不同產(chǎn)品族的全部產(chǎn)品。(對(duì)于增加新的產(chǎn)品,無(wú)能為力;支持增加產(chǎn)品族)

應(yīng)用場(chǎng)景:

- JDK 中Calendar 的getInstance方法。

- JDBC中Connection對(duì)象的獲取。

- Hibernate中SessionFactory創(chuàng)建Session。

- Spring 中IOC容器創(chuàng)建管理bean對(duì)象。

- XML解析時(shí)的DocumentBuilderFactory創(chuàng)建解析器對(duì)象。

- 反射中Class對(duì)象的newInstance()。

簡(jiǎn)單工廠模式

- 也叫做靜態(tài)工廠模式,就是工廠類(lèi)一般是使用靜態(tài)方法,通過(guò)接收的參數(shù)的不同來(lái)返回不同的對(duì)象實(shí)例。

- 對(duì)于增加新產(chǎn)品無(wú)能為力!不修改代碼的話,是無(wú)法擴(kuò)展的。

獲取學(xué)習(xí)資源,更多源碼,視頻,知識(shí)點(diǎn)講解!歡迎加入Java學(xué)習(xí)交流群616959444,我們一起學(xué)Java!

工廠方法模式(factorymethod)

- 為了避免簡(jiǎn)單工廠模式的缺點(diǎn),不完全滿足OCP。

- 工廠方法模式和簡(jiǎn)單工廠模式最大的不同在于,簡(jiǎn)單工廠模式只有一個(gè)(對(duì)于一個(gè)項(xiàng)目或者一個(gè)獨(dú)立模塊而言)工廠類(lèi),而工廠方法模式有一組實(shí)現(xiàn)了相同接口的工廠類(lèi)。

獲取學(xué)習(xí)資源,更多源碼,視頻,知識(shí)點(diǎn)講解!歡迎加入Java學(xué)習(xí)交流群616959444,我們一起學(xué)Java!

簡(jiǎn)單工廠和工廠方法模式比較

根據(jù)設(shè)計(jì)理論建議:工廠方法模式。但實(shí)際上,我們一般都用簡(jiǎn)單工廠模式。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 小編今天分享的內(nèi)容是Java設(shè)計(jì)模式之工廠模式。 收藏之前,務(wù)必點(diǎn)個(gè)贊,這對(duì)小編能否在頭條繼續(xù)給大家分享Java的...
    Autumn丶Rains閱讀 304評(píng)論 0 0
  • 一、設(shè)計(jì)模式的分類(lèi) 總體來(lái)說(shuō)設(shè)計(jì)模式分為三大類(lèi): 創(chuàng)建型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者...
    RamboLI閱讀 772評(píng)論 0 1
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,766評(píng)論 18 399
  • 時(shí)間 2012-6-20 21:56 內(nèi)容如下! 老公·昨天我在空間里看到父親節(jié)那一天女兒對(duì)你說(shuō)的話·我的眼淚不知...
    DtRaRy閱讀 1,281評(píng)論 0 0
  • 早上不到八點(diǎn)起來(lái)。晚上補(bǔ)上運(yùn)動(dòng),啞鈴3×20,應(yīng)該還可以做,但不一定能做上十個(gè)了。 片兒從貴州來(lái)了,晚上在大悅城和...
    arthur503閱讀 157評(píng)論 0 0