真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java中什么是工廠模式-創(chuàng)新互聯(lián)

java中什么是工廠模式?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)道外,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108

   

工廠模式(Factory Pattern)是 Java 中最常用的設(shè)計(jì)模式之一。這種類型的設(shè)計(jì)模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對(duì)象的最佳方式。

在工廠模式中,我們?cè)趧?chuàng)建對(duì)象時(shí)不會(huì)對(duì)客戶端暴露創(chuàng)建邏輯,并且是通過使用一個(gè)共同的接口來指向新創(chuàng)建的對(duì)象。

簡(jiǎn)單的講就是用工廠方法代替了new的操作,在通俗點(diǎn)就是說,你new一個(gè)對(duì)象的時(shí)候直接調(diào)用工廠方法就行了,在編程時(shí),需要定義一個(gè)工廠接口,由不同的的子類去實(shí)現(xiàn),再定一個(gè)具體工廠類,定義一個(gè)產(chǎn)生實(shí)例的方法,我們通過這個(gè)方法來獲得實(shí)例就行了。

優(yōu)點(diǎn):

1、一個(gè)調(diào)用者想創(chuàng)建一個(gè)對(duì)象,只要知道其名稱就可以了。

2、擴(kuò)展性高,如果想增加一個(gè)產(chǎn)品,只要擴(kuò)展一個(gè)工廠類就可以。

3、屏蔽產(chǎn)品的具體實(shí)現(xiàn),調(diào)用者只關(guān)心產(chǎn)品的接口。

缺點(diǎn):

每次增加一個(gè)產(chǎn)品時(shí),都需要增加一個(gè)具體類和對(duì)象實(shí)現(xiàn)工廠,使得系統(tǒng)中類的個(gè)數(shù)成倍增加,在一定程度上增加了系統(tǒng)的復(fù)雜度,同時(shí)也增加了系統(tǒng)具體類的依賴。這并不是什么好事。

應(yīng)用實(shí)例:

1、您需要一輛汽車,可以直接從工廠里面提貨,而不用去管這輛汽車是怎么做出來的,以及這個(gè)汽車?yán)锩娴木唧w實(shí)現(xiàn)。

工廠模式的簡(jiǎn)單實(shí)現(xiàn)如下:

//所有車的接口  有一個(gè)共同改的方法 開車
public interface Car {
    public void drive();
}
//奧迪類  實(shí)現(xiàn)car接口因?yàn)閵W迪車也是車 肯定可以開的嘛
public class Audi implements Car {
    public Audi(){
        System.out.println("生產(chǎn)出一輛奧迪");
    }
    @Override
    public void drive() {
        System.out.println("開奧迪");
    }
}
//寶馬類  實(shí)現(xiàn)car接口因?yàn)閷汃R車也是車 肯定也可以開
public class Bmw implements Car{
    public Bmw(){
        System.out.println("生產(chǎn)出一輛寶馬");
    }
    @Override
    public void drive() {
        System.out.println("開寶馬");
    }
}
//生產(chǎn)車的工廠  該工廠接收一個(gè)車名 你只需要告訴他你要生產(chǎn)什么車  就可以生產(chǎn)出對(duì)應(yīng)的車出來
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;
    }
}
//測(cè)試
public class Test {
    public static void main(String[] args) {
        //告訴工廠類 你需要生產(chǎn)出一輛奧迪車  那么給昂他傳一個(gè)參數(shù)audi進(jìn)去
        Car audi = CarFactory.getCar("audi");
        //就可以生產(chǎn)出奧迪的車 調(diào)用開車的方法就可以開車?yán)?        audi.drive();
        //寶馬類似
        Car bmw = CarFactory.getCar("bmw");
        bmw.drive();
    }
}
輸出:
成產(chǎn)出一輛奧迪
開奧迪
生產(chǎn)出一輛寶馬
開寶馬

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。


網(wǎng)站欄目:java中什么是工廠模式-創(chuàng)新互聯(lián)
標(biāo)題來源:http://weahome.cn/article/codcip.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部