内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

【設(shè)計(jì)模式與Android】抽象工廠模式——嵌合體克隆工廠-創(chuàng)新互聯(lián)

什么是抽象工廠模式

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括東港網(wǎng)站建設(shè)、東港網(wǎng)站制作、東港網(wǎng)頁制作以及東港網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,東港網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到東港省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

所謂抽象工廠模式,就是為創(chuàng)建一組相關(guān)或者是互相依賴的對(duì)象提供一個(gè)接口,而不需要指定它們的具體類的設(shè)計(jì)模式。抽象工廠模式適用于一個(gè)對(duì)象族有相同的約束的情況,用不抽象的語言解釋就是國內(nèi)著名開發(fā)者服務(wù)商環(huán)信在Android和iOS平臺(tái)都提供了IM SDK,盡管功能一樣,但代碼的實(shí)現(xiàn)邏輯是不同的,這就是抽象工廠模式。

抽象工廠模式的實(shí)現(xiàn)方式

盡管在講工廠方法模式的時(shí)候我用化學(xué)知識(shí)舉例,但那位技術(shù)編輯對(duì)我的理科生身份還是將信將疑,為了徹底消除他的疑惑,本文用生物知識(shí)“胚胎工程”舉例,同時(shí)為了證明本文不是我的理科朋友捉刀代筆,本文中舉例還要貼合他“海淀第一打野”的身份。

寫代碼之前我先帶著大家復(fù)習(xí)一下“胚胎工程”和“嵌合體”:所謂胚胎工程,就是指對(duì)動(dòng)物早期胚胎所進(jìn)行的多種顯微操作和處理技術(shù);所謂嵌合體,就是利用胚胎工程將不同生物的胚胎進(jìn)行胚胎分割移植制造出來的新生物。中華文化中的“龍”就可以視為給鱷魚或蟒蛇加上馬的頭、鹿的角的嵌合體,然后“虎背熊腰”、“狼心狗肺”、“獐頭鼠目”、“牛頭馬面”等都可以視為給人加上動(dòng)物器官的嵌合體。

首先定義一個(gè)抽象的克隆人工廠類:

public abstract classCopyFactory {
    public abstractIHead createHead();

    public abstractIBody createBody();

}

抽象產(chǎn)品——克隆的頭部胚胎:

public interfaceIHead {

    voidgetHead();

}

抽象產(chǎn)品——克隆的身體胚胎:

public interfaceIBody {

    voidgetBody();

}

具體產(chǎn)品——克隆的牛頭胚胎:

public classCowHead implementsIHead {
    @Override
    public voidgetHead() {
        Log.e("CowHead","牛頭~~");
    }
}

具體產(chǎn)品——克隆的狗頭胚胎:

public classDogHead implementsIHead {
    @Override
    public voidgetHead() {
        Log.e("DogHead","狗頭~~");
    }
}

具體產(chǎn)品——克隆的人頭胚胎:

public classHumanHead implementsIHead {
    @Override
    public voidgetHead() {
        Log.e("HumanHead","人頭~~");
    }
}

具體產(chǎn)品——克隆的人身體胚胎:

public classHumanBody implementsIBody {
    @Override
    public voidgetBody() {
        Log.e("HumanBody","~~人");
    }
}

具體產(chǎn)品——克隆的狗身體胚胎:

public classDogBody implementsIBody {
    @Override
    public voidgetBody() {
        Log.e("DogBody","~~狗");
    }
}

具體工廠——克隆阿利斯塔的工廠:

public classAlistarFactory extendsCopyFactory {
    @Override
    publicIHead createHead() {
        return newCowHead();
    }

    @Override
    publicIBody createBody() {
        return newHumanBody();
    }
}

具體工廠——克隆內(nèi)瑟斯的工廠:

public classNasusFactory extendsCopyFactory {
    @Override
    publicIHead createHead() {
        return newDogHead();
    }

    @Override
    publicIBody createBody() {
        return newHumanBody();
    }
}

具體工廠——克隆德萊厄斯的工廠:

public classDariusFactory extendsCopyFactory {
    @Override
    publicIHead createHead() {
        return newHumanHead();
    }

    @Override
    publicIBody createBody() {
        return newDogBody();
    }
}

他和其他9個(gè)召喚師湊在一起,玩一局匹配模式:

Log.e("請(qǐng)問海淀第一打野 : ","阿利斯塔是什么生物?");
AlistarFactory alistarFactory = newAlistarFactory();
alistarFactory.createHead().getHead();
alistarFactory.createBody().getBody();

Log.e("請(qǐng)問海淀第一打野 : ","內(nèi)瑟斯是什么生物?");
NasusFactory nasusFactory = newNasusFactory();
nasusFactory.createHead().getHead();
nasusFactory.createBody().getBody();

Log.e("請(qǐng)問海淀第一打野 : ","德萊厄斯是什么生物?");
DariusFactory dariusFactory = newDariusFactory();
dariusFactory.createHead().getHead();
dariusFactory.createBody().getBody();

海淀第一打野贏了游戲也相信了我的理工出身,讀者也學(xué)會(huì)了抽象工廠模式,把以上代碼認(rèn)真實(shí)現(xiàn)一遍的人對(duì)著LogCat笑出了聲。

Android源碼中的抽象工廠模式

(1)Service的onBind

每個(gè)Service都是一個(gè)具體的工廠,每個(gè)Binder都是IBinder的具體產(chǎn)品。

(2)MediaPlayerFactory

MediaPlayerFactory是Android底層為創(chuàng)建不同的MediaPlayer所定義的一個(gè)類,每個(gè)MediaPlayer都實(shí)現(xiàn)了MediaPlayerFactory中的registerFactory_l方法。

Android開發(fā)中如何利用抽象工廠模式

(1)抽象工廠模式有一個(gè)顯著的優(yōu)點(diǎn)就是接口與實(shí)現(xiàn)的分離,切換產(chǎn)品類時(shí)非常靈活。在實(shí)現(xiàn)Android應(yīng)用的換膚功能時(shí),我們可以利用抽象工廠模式。

需要注意的幾個(gè)問題

(1)抽象工廠模式的大缺點(diǎn)就在于會(huì)產(chǎn)生比工廠方法模式更多的類文件。

(2)因?yàn)槊吭黾右粋€(gè)新產(chǎn)品類都要修改抽象工廠,會(huì)造成每個(gè)具體工廠都要被修改,所以抽象工廠模式的產(chǎn)品類擴(kuò)展麻煩。

本系列其他博客

【設(shè)計(jì)模式與Android】策略模式——錦囊里的上策中策下策

【設(shè)計(jì)模式與Android】狀態(tài)模式——一個(gè)人的兩幅面孔

【設(shè)計(jì)模式與Android】責(zé)任鏈模式——曹瞞兵敗走華容

【設(shè)計(jì)模式與Android】命令模式——軍令如山

【設(shè)計(jì)模式與Android】觀察者模式——千里眼與順風(fēng)耳

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

文章題目:【設(shè)計(jì)模式與Android】抽象工廠模式——嵌合體克隆工廠-創(chuàng)新互聯(lián)
網(wǎng)頁URL:http://www.rwnh.cn/article0/ceicio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、用戶體驗(yàn)、網(wǎng)站制作、面包屑導(dǎo)航做網(wǎng)站、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
株洲市| 常山县| 两当县| 唐河县| 惠安县| 昌邑市| 连江县| 新建县| 绍兴市| 韶关市| 南京市| 安多县| 翁牛特旗| 武安市| 北宁市| 黑河市| 广汉市| 郁南县| 远安县| 盐池县| 通化市| 勐海县| 金溪县| 阿拉善右旗| 仲巴县| 安西县| 安陆市| 五河县| 临沧市| 鹰潭市| 抚宁县| 资溪县| 车致| 曲靖市| 牙克石市| 仁寿县| 葫芦岛市| 革吉县| 抚州市| 岳西县| 新建县|