二維碼
        企資網(wǎng)

        掃一掃關(guān)注

        當(dāng)前位置: 首頁(yè) » 企資快訊 » 辦公 » 正文

        工廠模式學(xué)習(xí)——工廠方法模式

        放大字體  縮小字體 發(fā)布日期:2023-03-12 22:42:36    作者:付嘉懿    瀏覽次數(shù):48
        導(dǎo)讀

        一、概念介紹前面學(xué)習(xí)了簡(jiǎn)單工廠模式(簡(jiǎn)單工廠模式的學(xué)習(xí)),簡(jiǎn)單工廠模式存在很多問(wèn)題。經(jīng)過(guò)實(shí)踐,業(yè)界針對(duì)其違反開閉原則的缺點(diǎn)進(jìn)行改進(jìn),有了工廠方法模式。工廠方法模式:又稱工廠模式、多態(tài)工廠模式和虛擬構(gòu)造

        一、概念介紹

        前面學(xué)習(xí)了簡(jiǎn)單工廠模式(簡(jiǎn)單工廠模式的學(xué)習(xí)),簡(jiǎn)單工廠模式存在很多問(wèn)題。經(jīng)過(guò)實(shí)踐,業(yè)界針對(duì)其違反開閉原則的缺點(diǎn)進(jìn)行改進(jìn),有了工廠方法模式。

        工廠方法模式:又稱工廠模式、多態(tài)工廠模式和虛擬構(gòu)造器模式,通過(guò)定義工廠父類負(fù)責(zé)定義創(chuàng)建對(duì)象的公共接口,而子類則負(fù)責(zé)生成具體的對(duì)象。

        二、實(shí)現(xiàn)示例

        2.1 UML類圖

        以生產(chǎn)汽車為例,將汽車制造工廠定義為一個(gè)公共接口CarFactory,分別由BaoMa生產(chǎn)工廠類于BenChi生產(chǎn)工廠類各自實(shí)現(xiàn),各自的工廠通過(guò)對(duì)應(yīng)汽車的構(gòu)造方法來(lái)創(chuàng)建對(duì)應(yīng)的汽車實(shí)例。

        UML類圖

        2.2 具體代碼

        2.2.1 汽車產(chǎn)品的定義與實(shí)現(xiàn)

        汽車接口

        public interface Car { void showBrand();}

        兩個(gè)具體實(shí)現(xiàn)類

        public class BaoMa implements Car{ @Override public void showBrand() { System.out.println("this car's brand is BaoMa!"); }}

        public class BenChi implements Car{ @Override public void showBrand() { System.out.println("this car's brand is BenChi!"); }}

        工廠接口及其實(shí)現(xiàn)類

        public interface CarFactory { Car produceCar();}

        public class BaoMaFactory implements CarFactory{ @Override public Car produceCar() { System.out.println("由寶馬工廠制造具體的寶馬汽車"); return new BaoMa(); }}

        public class BenChiFactory implements CarFactory{ @Override public Car produceCar() { System.out.println("由奔馳工廠制造具體的奔馳汽車"); return new BenChi(); }}

        使用代碼:

        public class FactoryMethodTest { public static void main(String[] args) { BaoMaFactory baoMaFactory = new BaoMaFactory(); Car baoma = baoMaFactory.produceCar(); baoma.showBrand(); System.out.println("==============================="); BenChiFactory benChiFactory = new BenChiFactory(); Car benchi = benChiFactory.produceCar(); benchi.showBrand(); }}

        運(yùn)行結(jié)果:

        控制臺(tái)輸出

        三、優(yōu)缺點(diǎn)分析

        優(yōu)點(diǎn):

        (1)更符合開閉原則

        (2)符合單一職責(zé)原則

        (3)讓擴(kuò)展變得簡(jiǎn)單,讓繼承變得可行,增加了多態(tài)性的體現(xiàn)

        缺點(diǎn):

        (1)新增加產(chǎn)品類時(shí),還需要增加與之對(duì)應(yīng)的具體工廠類,系統(tǒng)中類的個(gè)數(shù)將成對(duì)增加,在一定程度上增加了系統(tǒng)的復(fù)雜度;

        (2)需要引入抽象層,增加了系統(tǒng)的抽象性和理解難度。

        四、實(shí)際應(yīng)用

        (1)JDK中的Collection接口

         
        (文/付嘉懿)
        免責(zé)聲明
        本文僅代表作發(fā)布者:付嘉懿個(gè)人觀點(diǎn),本站未對(duì)其內(nèi)容進(jìn)行核實(shí),請(qǐng)讀者僅做參考,如若文中涉及有違公德、觸犯法律的內(nèi)容,一經(jīng)發(fā)現(xiàn),立即刪除,需自行承擔(dān)相應(yīng)責(zé)任。涉及到版權(quán)或其他問(wèn)題,請(qǐng)及時(shí)聯(lián)系我們刪除處理郵件:weilaitui@qq.com。
         

        Copyright ? 2016 - 2025 - 企資網(wǎng) 48903.COM All Rights Reserved 粵公網(wǎng)安備 44030702000589號(hào)

        粵ICP備16078936號(hào)

        微信

        關(guān)注
        微信

        微信二維碼

        WAP二維碼

        客服

        聯(lián)系
        客服

        聯(lián)系客服:

        在線QQ: 303377504

        客服電話: 020-82301567

        E_mail郵箱: weilaitui@qq.com

        微信公眾號(hào): weishitui

        客服001 客服002 客服003

        工作時(shí)間:

        周一至周五: 09:00 - 18:00

        反饋

        用戶
        反饋

        熟妇人妻中文字幕无码老熟妇| 日韩中文字幕在线视频| 2022中文字字幕久亚洲| 中文字幕无码日韩专区免费| 亚洲?v无码国产在丝袜线观看| 精品中文高清欧美| 国产在线无码不卡影视影院| 亚洲国产午夜中文字幕精品黄网站 | 中文国产成人精品久久不卡| 狠狠躁天天躁中文字幕无码| 亚洲精品无码久久久| 亚洲精品无码久久千人斩| 久久无码AV中文出轨人妻| 色综合AV综合无码综合网站| 亚洲国产人成中文幕一级二级 | 中文字幕乱码免费视频| 曰韩人妻无码一区二区三区综合部 | 亚洲无码黄色网址| 亚洲AV无码第一区二区三区 | av无码免费一区二区三区| 中文字幕在线免费看线人| 亚洲AV无码成人精品区大在线| 夜夜添无码一区二区三区| 无码AV中文一区二区三区| 国产成人无码综合亚洲日韩| 国产成人无码精品久久久性色| 91中文字幕在线| 乱人伦人妻中文字幕无码| 亚洲av永久无码制服河南实里 | 国产精品无码av在线播放| 韩国19禁无遮挡啪啪无码网站| 日韩中文字幕在线播放| 中文字幕久久久久人妻| 无码人妻丰满熟妇啪啪 | 精品亚洲AV无码一区二区| 免费人妻无码不卡中文字幕系| 精品亚洲成α人无码成α在线观看 | 亚洲成AV人片天堂网无码| 无码任你躁久久久久久老妇App| а天堂中文最新版在线| 中文字幕亚洲精品无码|