這篇文章主要介紹了Android中如何實(shí)現(xiàn)工廠方法模式的相關(guān)知識,內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Android中如何實(shí)現(xiàn)工廠方法模式文章都會有所收獲,下面我們一起來看看吧。
創(chuàng)新互聯(lián)服務(wù)項目包括蔡甸網(wǎng)站建設(shè)、蔡甸網(wǎng)站制作、蔡甸網(wǎng)頁制作以及蔡甸網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,蔡甸網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到蔡甸省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!1.意圖
定義一個用于創(chuàng)建對象的接口,讓子類決定實(shí)例化哪個類。工廠方式模式使一個類的實(shí)例化延遲到其子類。
熱門詞匯:虛構(gòu)造器 延遲 創(chuàng)建對象 子類
2.結(jié)構(gòu)圖和代碼
我們先看看標(biāo)準(zhǔn)的工廠方法結(jié)構(gòu)圖:
先抽象的產(chǎn)品類,抽象的工廠類,然后用客戶端具體的工廠生產(chǎn)相應(yīng)的具體的產(chǎn)品,但是客戶端并不知道具體的產(chǎn)品是怎么生產(chǎn)的,生產(chǎn)的過程封裝在工廠里。所以說,某種程度上,工廠方法模式改變了我們直接用new創(chuàng)建對象的方式,一個很好的開始,意義重大。
以ThreadFactory為例:
這張圖其實(shí)和原本的結(jié)構(gòu)圖有細(xì)微的區(qū)別,那就是參數(shù)化得工廠,而且從業(yè)務(wù)意義上也有些不同,但是思想是一樣的。
我們來看下具體的代碼:
//抽象產(chǎn)品 public interface Runnable { public abstract void run(); } //抽象工廠 public interface ThreadFactory { Thread newThread(Runnable r); }
下面是具體的實(shí)現(xiàn):
比如AsyncTask類中工廠的具體實(shí)現(xiàn)如下:
//工廠實(shí)現(xiàn)類 private static final ThreadFactory sThreadFactory = new ThreadFactory() { private final AtomicInteger mCount = new AtomicInteger(1); public Thread newThread(Runnable r) { return new Thread(r, "AsyncTask #" + mCount.getAndIncrement()); } }; //那么產(chǎn)品類在哪里呢? //做為參數(shù)Runnable r,我們可以創(chuàng)建千千萬萬個此系列的產(chǎn)品類 //同理,我們可以創(chuàng)建另外類似的工廠,生產(chǎn)某種專門的線程,非常容易擴(kuò)展
看到這里,我們一方面為它的生產(chǎn)便利性感嘆,一方面又為沒創(chuàng)建某類產(chǎn)品都要創(chuàng)建一個工廠而感到繁瑣,所以我們下面介紹簡單工廠,它的結(jié)構(gòu)圖如下:
簡單工廠把抽象工廠去掉了,你就創(chuàng)建一個專門生產(chǎn)某類產(chǎn)品就好。在一些特定而又不負(fù)責(zé)的領(lǐng)域非常實(shí)用方便套用這個模式。
在android中的Connection類中使用到了這個類:
其中Connection這個抽象類,既充當(dāng)抽象產(chǎn)品類,也充當(dāng)具體工廠類。
因為這種情況下,我們往往需要的是馬上生產(chǎn)子類,getConnection方法往往是靜態(tài)的,所以簡單工廠,也叫靜態(tài)工廠方法。
我們看看代碼如下:
abstract class Connection{ static Connection getConnection( Context context, HttpHost host, HttpHost proxy, RequestFeeder requestFeeder) { if (host.getSchemeName().equals("http")) { return new HttpConnection(context, host, requestFeeder); } // Otherwise, default to https return new HttpsConnection(context, host, proxy, requestFeeder); } }
關(guān)于“Android中如何實(shí)現(xiàn)工廠方法模式”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“Android中如何實(shí)現(xiàn)工廠方法模式”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享文章:Android中如何實(shí)現(xiàn)工廠方法模式-創(chuàng)新互聯(lián)
本文URL:http://muchs.cn/article18/ceecdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、定制開發(fā)、關(guān)鍵詞優(yōu)化、外貿(mào)建站、用戶體驗、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容