java中方法工廠模式的示例分析

這篇文章給大家分享的是有關(guān)java中方法工廠模式的示例分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

成都創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括南昌網(wǎng)站建設(shè)、南昌網(wǎng)站制作、南昌網(wǎng)頁制作以及南昌網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,南昌網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到南昌省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!


? 工廠方法模式要點(diǎn):

– 為了避免簡單工廠模式的缺點(diǎn),不完全滿足OCP。

– 工廠方法模式和簡單工廠模式最大的不同在于,簡單工廠模式只有一個(gè)(對于一個(gè)項(xiàng)目或者一個(gè)獨(dú)立模塊而言)工廠類,而工廠方法模式有一組實(shí)現(xiàn)了相同接口的工廠(用來生產(chǎn)同一等級結(jié)構(gòu)中的固定產(chǎn)品,支持增加任意產(chǎn)品)

2
方法工廠模式
java中方法工廠模式的示例分析

我仍然用一個(gè)代碼示例來進(jìn)行講解!

  1. 首先跟簡單工廠一樣寫出Animal接口和Dog,Cat兩個(gè)類,這里我就不寫出代碼了,要看代碼的朋友可以看上一篇文章。

   

   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();
   }
}
 

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

汪汪汪!
喵喵喵!

Process finished with exit code 0
 

分析:相比較于簡單工廠模式,方法工廠模式雖然解決了OCP的問題,但是它有一個(gè)很不好的地方-就是結(jié)構(gòu)太復(fù)雜,因?yàn)槲覀兌鄤?chuàng)建了兩個(gè)工廠類,如果我們今后要加一些工廠時(shí),我們需要?jiǎng)?chuàng)建很多的類,所以如今這種模式使用的比較少,大多數(shù)仍然為簡單工廠模式。

感謝各位的閱讀!關(guān)于“java中方法工廠模式的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

本文標(biāo)題:java中方法工廠模式的示例分析
新聞來源:http://muchs.cn/article42/jopoec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、做網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)、企業(yè)建站、品牌網(wǎng)站制作、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管