更新時間:2020-09-17 15:03:48 來源:動力節(jié)點 瀏覽1871次
一.簡單工廠模式
簡單工廠模式就是把對類的創(chuàng)建初始化全都交給一個工廠來執(zhí)行,而用戶不需要去關心創(chuàng)建的過程是什么樣的,只用告訴工廠我想要什么就行了。而這種方法的缺點也很明顯,違背了設計模式的開閉原則,因為如果你要增加工廠可以初始化的類的時候,你必須對工廠進行改建
代碼如下:
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("來一輛BMW!");
}
}package com.long88.ad.test;
public class BYD implements Car {
@Override
public void getCar() {
System.out.printf("來一輛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();
}
}結果如圖:

二. 工廠方法模式
設計一個工廠的接口,你想要什么東西,就寫個類繼承于這個工廠,這樣就不用修改什么,直接添加就行了。就相當于,我這個工廠是用來生汽車的,而要什么品牌的汽車具體分到了每個車間,如果新多了一種品牌的汽車,直接新增一個車間就行了。那么問題又來了,如果想要生產(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("來一輛BMW!");
}
}package com.long88.ad.test;
public class BYD implements Car {
@Override
public void getCar() {
System.out.printf("來一輛BYD!");
}
}//抽象工廠
interface CarFactory{
public Car getCarByFactory();
}// BMW 具體工廠類
class BMWfactory implements CarFactory{
@Override
public Car getCarByFactory() {
return new BMW();
}
}// BYD 具體工廠類
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();
}
}以上就是對“Java工廠模式菜鳥教程,快學起來呀”的介紹,希望對大家有所幫助,還想學習更多關于Java的課程,可以關注動力節(jié)點官網(wǎng)Java視頻教程,免費下載學習。