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

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

如何理解Java知識(shí)點(diǎn)中的常見(jiàn)設(shè)計(jì)模式-創(chuàng)新互聯(lián)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何理解Java知識(shí)點(diǎn)中的常見(jiàn)設(shè)計(jì)模式,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供寶坻網(wǎng)站建設(shè)、寶坻做網(wǎng)站、寶坻網(wǎng)站設(shè)計(jì)、寶坻網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、寶坻企業(yè)網(wǎng)站模板建站服務(wù),10年寶坻做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

一. 觀察者模式

觀察者模式用一句話描述就是當(dāng)一個(gè)類的對(duì)象(被觀察者)的狀態(tài)發(fā)生改變時(shí)同時(shí)其他依賴于它的對(duì)象(觀察者)的狀態(tài)也做相應(yīng)的改變(做相應(yīng)的動(dòng)作)。

具體實(shí)現(xiàn)流程:

  • 定義觀察者抽象類,該抽象類中有一個(gè)被觀察者的成員變量,還有一個(gè)update方法用于在被觀察者發(fā)生改變時(shí)通知觀察者類,實(shí)例化觀察者類時(shí)將被觀察者實(shí)例傳遞進(jìn)來(lái),這樣當(dāng)被觀察者調(diào)用觀察者的update方法后觀察者就可以通過(guò)自己的被觀察者成員變量訪問(wèn)到被觀察者改變之后的狀態(tài)

  • 定義被觀察者,其含有一個(gè)list,用來(lái)存儲(chǔ)若干個(gè)觀察者的實(shí)例,暴露出增加、刪除編輯觀察者的方法,當(dāng)其狀態(tài)發(fā)生改變時(shí)遍歷調(diào)用list中觀察者對(duì)象的update方法通知觀察者們

java在java.util庫(kù)里面,提供了一個(gè)Observable類和一個(gè)Observer接口,在Observer接口中只提供了一個(gè)update方法,被觀察者通過(guò)調(diào)用該方法通知觀察者自己的狀態(tài)發(fā)生了改變。Observable類我們提供了對(duì)于觀察者添加,刪除,通知觀察者改變等方法。當(dāng)我們的需要通知觀察者并且需要調(diào)用觀察者update方法,我們需要調(diào)用setChanged方法。

在Android中對(duì)于觀察者模式使用的場(chǎng)景有很多。例如BroadcastReceiver,Eventbus,RxJava等等都采用了觀察者模式。

二. 適配器模式

作為兩個(gè)不兼容的接口之間的橋梁,它結(jié)合了兩個(gè)獨(dú)立接口的功能。 這種模式涉及到一個(gè)單一的類,該類負(fù)責(zé)加入獨(dú)立的或不兼容的接口功能。 注意,要點(diǎn)是要在原來(lái)類的基礎(chǔ)上使原本不兼容的功能變得兼容。 Adapter類一般是用來(lái)實(shí)現(xiàn)與原有類不兼容的功能,比如demo中的MediaAdapter實(shí)現(xiàn)了MediaPlayer沒(méi)有的特殊功能,用戶只要調(diào)用AudioPlayer中的play方法,AudioPlayer會(huì)自動(dòng)根據(jù)音頻的類型選擇不同的play方式,當(dāng)音頻類型不符合傳統(tǒng)player的能力時(shí)AudioPlayer會(huì)使用adapter去調(diào)用之前不兼容的方法(功能),這樣就實(shí)現(xiàn)了所謂的適配。

三. 代理模式

具先實(shí)現(xiàn)其實(shí)也很簡(jiǎn)單,就是一個(gè)代理類將別代理類包裹起來(lái),只對(duì)外界暴露調(diào)用被代理類方法的方法,從而實(shí)現(xiàn)代理模式,需要特別注意的是代理模式和適配器模式的區(qū)別: 適配器模式主要改變所考慮對(duì)象的接口,而代理模式不能改變所代理類的接口 ,和裝飾器模式的區(qū)別: 裝飾器模式為了增強(qiáng)功能,而代理模式是為了加以控制 。

四. 工廠方法模式

工廠方法模式其實(shí)就是當(dāng)一個(gè)類的實(shí)例化依賴于不同場(chǎng)景時(shí)需要使用的,比如上面demo,根據(jù)不同的形狀,實(shí)例化的Shape對(duì)象內(nèi)部的實(shí)現(xiàn)邏輯不一樣,這時(shí)候就可以使用工廠方法模式,將類內(nèi)部的實(shí)現(xiàn)細(xì)節(jié)隱藏起來(lái),用戶只需要告訴工廠類自己需要什么情況下的產(chǎn)品,工廠就可以自動(dòng)調(diào)用自己內(nèi)部對(duì)應(yīng)場(chǎng)景的代碼從而返回一個(gè)用戶需要的“產(chǎn)品”。

五. 抽象工廠模式

對(duì)比工廠方法模式,因?yàn)橐粋€(gè)工廠只能生產(chǎn)一個(gè)產(chǎn)品,比如一個(gè)ShapeFactory只能根據(jù)不同情況實(shí)例化不同的Shape,那么當(dāng)我們需要一整套的產(chǎn)品(比如形狀和顏色形成了一套產(chǎn)品)時(shí)使用工廠方法顯然就不能解決了,所以就需要抽象工廠模式,抽象工廠模式實(shí)際上是工廠的工廠,即其作用的目的是為了實(shí)例化不同的工廠,用戶再通過(guò)不同的工廠實(shí)例化不同場(chǎng)景下成套的產(chǎn)品。

六. 單例模式

單例模式通俗來(lái)講就是讓一個(gè)類在整個(gè)程序中只有一個(gè)對(duì)象。

七. 命令模式

命令模式實(shí)質(zhì)上就是將命令抽象到一個(gè)具體的類中,即這個(gè)類是專門去執(zhí)行某個(gè)命令的,比如demo中,SellStock就是專門執(zhí)行sell這個(gè)命令的,當(dāng)用戶需要sell的時(shí)候只要實(shí)例化SellStock然后excute就可以完成sell,還有一個(gè)比較常用的例子是GUI開(kāi)發(fā)中按鈕(button)的作用,每一個(gè)按鈕都是一個(gè)對(duì)象,當(dāng)用戶點(diǎn)擊某個(gè)按鈕后就會(huì)觸發(fā)一個(gè)相應(yīng)的命令,用戶看到的是點(diǎn)擊按鈕產(chǎn)生效果,而代碼層面上是實(shí)例化的按鈕對(duì)象執(zhí)行類似于demo中的excute方法完成自己的“命令”。

上述就是小編為大家分享的如何理解Java知識(shí)點(diǎn)中的常見(jiàn)設(shè)計(jì)模式了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。


當(dāng)前文章:如何理解Java知識(shí)點(diǎn)中的常見(jiàn)設(shè)計(jì)模式-創(chuàng)新互聯(lián)
文章出自:http://weahome.cn/article/dedjho.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部