這篇文章給大家分享的是有關(guān)java中方法工廠模式的示例分析的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
成都創(chuàng)新互聯(lián)服務(wù)項目包括南昌網(wǎng)站建設(shè)、南昌網(wǎng)站制作、南昌網(wǎng)頁制作以及南昌網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,南昌網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到南昌省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
? 工廠方法模式要點:
– 為了避免簡單工廠模式的缺點,不完全滿足OCP。
– 工廠方法模式和簡單工廠模式最大的不同在于,簡單工廠模式只有一個(對于一個項目或者一個獨立模塊而言)工廠類,而工廠方法模式有一組實現(xiàn)了相同接口的工廠(用來生產(chǎn)同一等級結(jié)構(gòu)中的固定產(chǎn)品,支持增加任意產(chǎn)品)
我仍然用一個代碼示例來進(jìn)行講解!
1. 首先跟簡單工廠一樣寫出Animal接口和Dog,Cat兩個類,這里我就不寫出代碼了,要看代碼的朋友可以看上一篇文章。
2. 我們首先創(chuàng)建AnimalFactory接口:
public interface AnimalFactory {
Animal createAniaml();
}
3. 繼續(xù)創(chuàng)建DogFactory,CatFactory類,并繼承AnimalFactory接口
public class CatFactory implements AnimalFactory{
@Override
public Animal createAniaml() {
return new Cat();
}
}
public class DogFactory implements AnimalFactory{
@Override
public Animal createAniaml() {
return new Dog();
}
}
4.最后我們來測試一下我們的代碼:
public class Test {
public static void main(String[] args){
Animal a1 = new DogFactory().createAniaml();
Animal a2 = new CatFactory().createAniaml();
a1.speak();
a2.speak();
}
}
運行結(jié)果:
汪汪汪!
喵喵喵!
Process finished with exit code 0
分析:相比較于簡單工廠模式,方法工廠模式雖然解決了OCP的問題,但是它有一個很不好的地方-就是結(jié)構(gòu)太復(fù)雜,因為我們多創(chuàng)建了兩個工廠類,如果我們今后要加一些工廠時,我們需要創(chuàng)建很多的類,所以如今這種模式使用的比較少,大多數(shù)仍然為簡單工廠模式。
感謝各位的閱讀!關(guān)于“java中方法工廠模式的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
本文標(biāo)題:java中方法工廠模式的示例分析
新聞來源:http://jinyejixie.com/article42/jopoec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、做網(wǎng)站、品牌網(wǎng)站設(shè)計、企業(yè)建站、品牌網(wǎng)站制作、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)