更新時(shí)間:2020-09-17 15:03:48 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1681次
一.簡(jiǎn)單工廠模式
簡(jiǎn)單工廠模式就是把對(duì)類(lèi)的創(chuàng)建初始化全都交給一個(gè)工廠來(lái)執(zhí)行,而用戶(hù)不需要去關(guān)心創(chuàng)建的過(guò)程是什么樣的,只用告訴工廠我想要什么就行了。而這種方法的缺點(diǎn)也很明顯,違背了設(shè)計(jì)模式的開(kāi)閉原則,因?yàn)槿绻阋黾庸S可以初始化的類(lèi)的時(shí)候,你必須對(duì)工廠進(jìn)行改建
代碼如下:
package com.long88.ad.test; interface Car { public void getCar(); }
package com.long88.ad.test; public class BMW implements Car{ @Override public void getCar() { System.out.printf("來(lái)一輛BMW!"); } }
package com.long88.ad.test; public class BYD implements Car { @Override public void getCar() { System.out.printf("來(lái)一輛BYD!"); } }
package com.long88.ad.test; public class CarFactor { public static Car carFactor(Class tClass){ if (tClass.getName().equals(BMW.class.getName())){ return new BMW(); } if (tClass.getName().equals(BYD.class.getName())){ return new BYD(); } return null; } }
package com.long88.ad.test; public class testFactory { public static void main(String[] args) { Car car = CarFactor.carFactor(BYD.class); car.getCar(); } }
結(jié)果如圖:
二. 工廠方法模式
設(shè)計(jì)一個(gè)工廠的接口,你想要什么東西,就寫(xiě)個(gè)類(lèi)繼承于這個(gè)工廠,這樣就不用修改什么,直接添加就行了。就相當(dāng)于,我這個(gè)工廠是用來(lái)生汽車(chē)的,而要什么品牌的汽車(chē)具體分到了每個(gè)車(chē)間,如果新多了一種品牌的汽車(chē),直接新增一個(gè)車(chē)間就行了。那么問(wèn)題又來(lái)了,如果想要生產(chǎn)大炮怎么辦?
代碼如下:
package com.long88.ad.test; interface Car { public void getCar(); }
package com.long88.ad.test; public class BMW implements Car{ @Override public void getCar() { System.out.printf("來(lái)一輛BMW!"); } }
package com.long88.ad.test; public class BYD implements Car { @Override public void getCar() { System.out.printf("來(lái)一輛BYD!"); } }
//抽象工廠 interface CarFactory{ public Car getCarByFactory(); }
// BMW 具體工廠類(lèi) class BMWfactory implements CarFactory{ @Override public Car getCarByFactory() { return new BMW(); } }
// BYD 具體工廠類(lèi) class BYD factory implements CarFactory{ @Override public Car getCarByFactory() { return new BYD (); } }
public class TestFactory { public static void main(String[] args) { Car bmw= new BMWfactory().getCarByFactory(); bmw.getCar(); } }
以上就是對(duì)“Java工廠模式菜鳥(niǎo)教程,快學(xué)起來(lái)呀”的介紹,希望對(duì)大家有所幫助,還想學(xué)習(xí)更多關(guān)于Java的課程,可以關(guān)注動(dòng)力節(jié)點(diǎn)官網(wǎng)Java視頻教程,免費(fèi)下載學(xué)習(xí)。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)