二維碼
微世推網(wǎng)

掃一掃關(guān)注

當(dāng)前位置: 首頁 » 企業(yè)商訊 » 供求資訊 » 正文

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

放大字體  縮小字體 發(fā)布日期:2023-03-26 00:53:32    作者:田璽冉    瀏覽次數(shù):248
導(dǎo)讀

一、概念介紹前面學(xué)習(xí)了簡單工廠模式(簡單工廠模式得學(xué)習(xí)),簡單工廠模式存在很多問題。經(jīng)過實(shí)踐,業(yè)界針對(duì)其違反開閉原則得缺點(diǎn)進(jìn)行改進(jìn),有了工廠方法模式。工廠方法模式:又稱工廠模式、多態(tài)工廠模式和虛擬構(gòu)造器模式,通過定義工廠父類負(fù)責(zé)定義創(chuàng)建對(duì)象得公共接口,而子類則負(fù)責(zé)生成具體得對(duì)象。二、實(shí)現(xiàn)示例2.1 UML

一、概念介紹

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

工廠方法模式:又稱工廠模式、多態(tài)工廠模式和虛擬構(gòu)造器模式,通過定義工廠父類負(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),各自得工廠通過對(duì)應(yīng)汽車得構(gòu)造方法來創(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ò)展變得簡單,讓繼承變得可行,增加了多態(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)或其他問題,請(qǐng)及時(shí)聯(lián)系我們刪除處理郵件:weilaitui@qq.com。
 

Copyright?2015-2025 粵公網(wǎng)安備 44030702000869號(hào)

粵ICP備16078936號(hào)

微信

關(guān)注
微信

微信二維碼

WAP二維碼

客服

聯(lián)系
客服

聯(lián)系客服:

24在線QQ: 770665880

客服電話: 020-82301567

E_mail郵箱: weilaitui@qq.com

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

韓瑞 小英 張澤

工作時(shí)間:

周一至周五: 08:00 - 24:00

反饋

用戶
反饋

主站蜘蛛池模板: 亚洲成人免费在线观看| 国产成人精品第一区二区| 成人欧美一区二区三区| 中文字幕在线看片成人| 欧美成人全部费免网站| 欧美成人免费在线视频| 欧美成人乱妇在线播放| 国产成人精品福利网站人 | 亚洲欧美成人一区二区在线电影| 亚洲成人在线电影| 成人国产精品免费视频| 亚洲成人xxx| 成人au免费视频影院| 国产成人精品一区二区秒拍| 国产v精品成人免费视频400条| 欧美成人一区二区三区在线视频| 成人18视频日本| www.成人av.com| 国产成人亚洲精品电影| 成人黄色小说网站| 午夜成人无码福利免费视频| 成人精品一区二区不卡视频| 亚洲国产成人久久77| 国产精品成人va在线观看 | www.成人在线| 亚洲国产成人va在线观看| 国产成人午夜高潮毛片| 国产精品成人扳**a毛片| 欧美成人亚洲欧美成人| 久久久久亚洲AV成人无码电影| 国产成人无码精品久久二区三区| 成人午夜福利视频镇东影视| 99国产精品久久久久久久成人热| 国产成人精品视频播放| 小明发布永久在线成人免费| 成人男女网18免费视频| 成人无码免费一区二区三区| 99热成人精品国产免国语的| 成人黄软件网18免费下载成人黄18免费视频 | 亚洲欧美成人综合久久久| 亚洲国产精品一区二区成人片国内|