首頁  >  文章  >  Java  >  什麼是工廠模式java

什麼是工廠模式java

angryTom
angryTom原創
2019-11-11 09:34:573342瀏覽

什麼是工廠模式java

什麼是工廠模式java    

工廠模式(Factory Pattern)是Java 中最常用的設計模式之一。這種類型的設計模式屬於創建型模式,它提供了一種創建物件的最佳方式。

在工廠模式中,我們在建立物件時不會對客戶端暴露建立邏輯,並且是透過使用一個共同的介面來指向新建立的物件。

簡單的講就是用工廠方法代替了new的操作,在通俗點就是說,你new一個對象的時候直接調用工廠方法就行了,在編程時,需要定義一個工廠接口,由不同的的子類去實現,再定一個具體工廠類,定義一個產生實例的方法,我們透過這個方法來獲得實例就行了。

優點:

 1、一個呼叫者想建立一個對象,只要知道其名稱就可以了。 

2、擴充性高,如果想增加一個產品,只要擴充一個工廠類別就可以。

 3、屏蔽產品的具體實現,呼叫者只關心產品的介面。

缺點:

每次增加一個產品時,都需要增加一個具體類別和物件實作工廠,使得系統中類別的數量成倍增加,在一定程度上增加了系統的複雜度,同時也增加了系統具體類別的依賴。這並不是什麼好事。

應用實例:

 1、您需要一輛汽車,可以直接從工廠裡面提貨,而不用去管這輛汽車是怎麼做出來的,以及這個汽車裡面的具體實現。 

工廠模式的簡單實作如下:

//所有车的接口  有一个共同改的方法 开车
public interface Car {
    public void drive();
}
//奥迪类  实现car接口因为奥迪车也是车 肯定可以开的嘛
public class Audi implements Car {
    public Audi(){
        System.out.println("生产出一辆奥迪");
    }
    @Override
    public void drive() {
        System.out.println("开奥迪");
    }
}
//宝马类  实现car接口因为宝马车也是车 肯定也可以开
public class Bmw implements Car{
    public Bmw(){
        System.out.println("生产出一辆宝马");
    }
    @Override
    public void drive() {
        System.out.println("开宝马");
    }
}
//生产车的工厂  该工厂接收一个车名 你只需要告诉他你要生产什么车  就可以生产出对应的车出来
public class CarFactory {
    public static Car getCar(String caename){
        if(caename.equals("audi")){
            return new Audi();
        }else if(caename.equals("bmw")){
            return new Bmw();
        }
            return null;
    }
}
//测试
public class Test {
    public static void main(String[] args) {
        //告诉工厂类 你需要生产出一辆奥迪车  那么给昂他传一个参数audi进去
        Car audi = CarFactory.getCar("audi");
        //就可以生产出奥迪的车 调用开车的方法就可以开车啦
        audi.drive();
        //宝马类似
        Car bmw = CarFactory.getCar("bmw");
        bmw.drive();
    }
}
输出:
成产出一辆奥迪
开奥迪
生产出一辆宝马
开宝马

推薦教學:java教學

以上是什麼是工廠模式java的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn