91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中什么是工廠模式

發布時間:2020-07-01 11:56:29 來源:億速云 閱讀:282 作者:Leah 欄目:編程語言

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();
    }
}
輸出:
成產出一輛奧迪
開奧迪
生產出一輛寶馬
開寶馬

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

镇原县| 沁水县| 博湖县| 根河市| 青阳县| 静海县| 忻州市| 奉贤区| 西城区| 日土县| 峡江县| 阳江市| 游戏| 高要市| 阜新| 通许县| 昆明市| 榆树市| 厦门市| 武山县| 佛坪县| 西贡区| 东城区| 志丹县| 舟曲县| 云龙县| 大关县| 伊川县| 商都县| 涞源县| 马边| 仁布县| 施秉县| 仁化县| 北安市| 井陉县| 东乡族自治县| 佛教| 桐柏县| 唐山市| 大余县|