日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

java设计模式之简单工厂模式

發(fā)布時(shí)間:2023/12/31 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java设计模式之简单工厂模式 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

定義:
由一個(gè)工廠對(duì)象決定創(chuàng)建出哪一種產(chǎn)品類(lèi)的實(shí)例
類(lèi)型:屬于創(chuàng)建型,但不屬于GOF23中設(shè)計(jì)模式

工廠模式分為三種:
1、簡(jiǎn)單工廠模式(靜態(tài)工廠方法模式)
2、工廠方法模式(多態(tài)性工廠模式)
3、抽象工廠模式(工具箱模式)

適用場(chǎng)景:
工廠類(lèi)負(fù)責(zé)創(chuàng)建的對(duì)象比較少。
客戶端(應(yīng)用層)只知道傳入工廠類(lèi)的參數(shù),對(duì)于如何創(chuàng)建對(duì)象(邏輯)不關(guān)心。

優(yōu)點(diǎn):
只需要傳入一個(gè)正確的參數(shù),就可以獲取你所需要的對(duì)象,而無(wú)需知道其創(chuàng)建細(xì)節(jié)。

缺點(diǎn):
工廠類(lèi)的職責(zé)相對(duì)過(guò)重,增加新的產(chǎn)品,需要修改工廠類(lèi)的判斷邏輯,違背開(kāi)閉原則。

Coding:
場(chǎng)景:例如課程網(wǎng)上有java的視頻,有Python的視頻,前端的視頻
首先創(chuàng)建一個(gè)video視頻抽象類(lèi)

創(chuàng)建java的視頻實(shí)現(xiàn)類(lèi)JavaVideo類(lèi):

創(chuàng)建Python的視頻實(shí)現(xiàn)類(lèi)PythonVideo類(lèi):

創(chuàng)建一個(gè)Test測(cè)試類(lèi)(應(yīng)用層也就是客戶端):

創(chuàng)建工廠類(lèi)VideoFactory

修改Test類(lèi)中如下

類(lèi)圖如下:

Test只依賴(lài)VideoFactory這個(gè)類(lèi),具體的生產(chǎn)過(guò)程都在VideoFactory這個(gè)類(lèi)中,Test只管使用。
這就是簡(jiǎn)單工廠
接下來(lái)看一看簡(jiǎn)單工廠有什么缺點(diǎn),比如我們現(xiàn)在要加一個(gè)算法的課程,那我們就需要修改VideoFactory這個(gè)類(lèi),隨著課程不斷的增加我們就需要不斷地去修改工廠類(lèi),修改就會(huì)帶來(lái)風(fēng)險(xiǎn),所以簡(jiǎn)單工廠并不符合開(kāi)閉原則,不易擴(kuò)展。
我們可以通過(guò)反射來(lái)彌補(bǔ)簡(jiǎn)單工廠的不易擴(kuò)展性。
首先修改VideoFactory類(lèi)

修改Test類(lèi)如下

這就解決了簡(jiǎn)單工廠的不易擴(kuò)展性,即使有新的課程,只需要?jiǎng)?chuàng)建新的課程類(lèi)就可以。

總結(jié)

以上是生活随笔為你收集整理的java设计模式之简单工厂模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。