日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

工厂方法讲解

發(fā)布時(shí)間:2024/4/13 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 工厂方法讲解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我們學(xué)習(xí)工廠方法,我們看一下工廠方法的定義,定義一個(gè)創(chuàng)建對(duì)象的接口,注意創(chuàng)建對(duì)象的接口,但是讓實(shí)現(xiàn)這個(gè)接口的類來決定實(shí)例化哪個(gè)類,工廠方法讓類的實(shí)例推遲到子類中進(jìn)行,回想一下簡單工廠,類型也是創(chuàng)建型,創(chuàng)建對(duì)象往往需要非常復(fù)雜的過程,那創(chuàng)建對(duì)象也可能會(huì)導(dǎo)致大量的重復(fù)代碼,工廠模式通過單獨(dú)的一個(gè)方法,來解決這些問題,有子類來實(shí)現(xiàn)這個(gè)方法,這個(gè)也非常好記,這個(gè)模式兩個(gè)簡單的詞語,創(chuàng)建工廠,創(chuàng)建對(duì)象用的,通過子類實(shí)現(xiàn)方法創(chuàng)建對(duì)象,那我們接著來看一下

我們接著來看工廠方法應(yīng)用的場(chǎng)景,首先創(chuàng)建對(duì)象需要大量重復(fù)的代碼,這個(gè)時(shí)候就可以考慮工廠方法適不適合在這里,客戶端不依賴于產(chǎn)品類實(shí)例如何被創(chuàng)建,實(shí)現(xiàn)等細(xì)節(jié),也就是說我們應(yīng)用層的代碼,不依賴于這產(chǎn)品實(shí)例如何被實(shí)現(xiàn)的,那一個(gè)類通過其子類來指定創(chuàng)建哪個(gè)對(duì)象,同樣的工廠方法呢,在這個(gè)模式中,不需要具體類的類名,你只需要工廠就可以,具體的對(duì)象都由具體的工廠來創(chuàng)建的,客戶端只需要我的產(chǎn)品是在哪個(gè)工廠里,那在這種模式當(dāng)中,利用面向?qū)ο蟮亩鄳B(tài)性,和里氏替換原則,所以我們用這個(gè)模式,寫的程序,在運(yùn)行的時(shí)候,子類對(duì)象將覆蓋父類對(duì)象,從而使系統(tǒng)更容易擴(kuò)展,同時(shí)注意一下,我們的定義中也說了,工廠方法讓類的實(shí)例化推遲到子類中進(jìn)行,那可以回想一下簡單工廠,類型也是創(chuàng)建型把創(chuàng)建對(duì)象的過程呢,推遲到子類來實(shí)現(xiàn),所以創(chuàng)建對(duì)象的任務(wù)就委托給多個(gè)工廠子類中的某一個(gè),客戶端在使用時(shí),無須關(guān)心是哪一個(gè)子類創(chuàng)建,需要的時(shí)候呢,如果需要?jiǎng)討B(tài)指定,我們還可以把工廠類名配置到配置文件上,數(shù)據(jù)庫中動(dòng)態(tài)創(chuàng)建

我們繼續(xù)來看工廠方法的優(yōu)點(diǎn),用戶只需關(guān)心所需產(chǎn)品對(duì)應(yīng)的工廠,無須關(guān)心創(chuàng)建細(xì)節(jié),加入新的產(chǎn)品是符合開閉原則的,提高可擴(kuò)展性,那我們來解讀一下,在工廠方法模式中,我們用它來創(chuàng)建所需要的產(chǎn)品,同時(shí)又隱藏了實(shí)例化的細(xì)節(jié),我們只需要關(guān)心產(chǎn)品所需要的工廠,無須關(guān)心創(chuàng)建細(xì)節(jié),那對(duì)于工廠角色和產(chǎn)品角色,這方面的多態(tài)性設(shè)計(jì),他可以使工廠自主,確定創(chuàng)建何種對(duì)象,而如何創(chuàng)建這個(gè)對(duì)象的細(xì)節(jié),則完全封裝在具體的工廠內(nèi)部

那我們繼續(xù)來看一下,工廠方法也是有缺點(diǎn)的,類的個(gè)數(shù)容易過多,增加復(fù)雜度,同時(shí)增加了系統(tǒng)的抽象性和理解難度,那設(shè)計(jì)模式也是一樣,根據(jù)我們實(shí)際的應(yīng)用場(chǎng)景,業(yè)務(wù)模型,來考慮,也不能過分的遵守設(shè)計(jì)原則和使用設(shè)計(jì)模式,這里面都是一個(gè)平衡,那類的個(gè)數(shù)容易過多怎么理解呢,后續(xù)coding也會(huì)領(lǐng)著大家來看,這里面先簡單說一下,那我們?cè)谔砑有庐a(chǎn)品的時(shí)候,我們要編寫新的產(chǎn)品類,而且要對(duì)應(yīng)具體的工廠類,所以類的個(gè)數(shù)會(huì)增加,那類的個(gè)數(shù)增加,系統(tǒng)的復(fù)雜度也就增加了,工廠方法本身也是利用了抽象,所以這里我們會(huì)引入動(dòng)態(tài)層,可能還會(huì)增加反射這些技術(shù),也增加系統(tǒng)的實(shí)現(xiàn)難度,這個(gè)肯定是小case,我們接下來一起coding,然后學(xué)習(xí)工廠方法這個(gè)模式演進(jìn)的UML,然后一起來解析一些源碼

?

總結(jié)

以上是生活随笔為你收集整理的工厂方法讲解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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