小白寫手之觀察者模式

學(xué)習(xí)Android到現(xiàn)在也兩年了,感覺很多知識都不懂,也一直沒寫過博客分享東西,因為害怕知識點寫錯,怕讀者發(fā)現(xiàn)錯誤,然后就很尷尬,現(xiàn)在想想,不寫點東西給你們指出我的錯誤,我發(fā)現(xiàn)我懂的更少,所以我現(xiàn)在開始嘗試寫博客,或許寫的不好,大家多多指教小的,不管是語言描述還是知識點描述的問題,反正有指出就對了,我就可以認識到自己的不足,謝謝大家啦!??!

廢話一堆完畢后進入正題,我們今天來學(xué)習(xí)一下設(shè)計模式,因為我以前也沒用過設(shè)計模式,所以現(xiàn)在是邊學(xué)邊分享,也是設(shè)計模式的初學(xué)者,我可能寫理論的知識點很少,都是實際敲代碼展示,希望能最簡單明了的分享給大家,我不一定按照以下順序來分享,我只按照我學(xué)習(xí)的順序來分享。

設(shè)計模式一共有23種,其中又分為三大類:

創(chuàng)建型模式,共五種:工廠方法模式、抽象工廠模式單例模式、建造者模式、原型模式

結(jié)構(gòu)型模式,共七種:適配器模式裝飾器模式、代理模式外觀模式、橋接模式組合模式、享元模式。

行為型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式責任鏈模式、命令模式、備忘錄模式、狀態(tài)模式、訪問者模式中介者模式、解釋器模式

--------------------------------------------------我是觀察者模式------------------------------------------------------

觀察者模式建名知意就是偏向于觀察,所以我們習(xí)慣的命名就是觀察者都是以xxxObserver結(jié)尾,被觀察的目標xxxSubject結(jié)尾,大家要養(yǎng)成這種命名習(xí)慣,接下來代碼步驟走起,用搶小米手機為故事展開。

步驟一:定義Observer對象,注意:定義的是接口,里面有個方法,習(xí)慣命名為update

定義Observer對象

步驟二:定義實在 Observer對象,他收到消息后,然后該干嘛就干嘛

實在的米粉

步驟三:定義目標Subject,它可以知道觀察它的目標,并提供添加、刪除、和通知更新方法

定義Subject對象

步驟四:定義具體目標對象,比如小米MIX2

定義具體實在的Subject對象

步驟四:定義客戶端開始進行測試,注意步驟事項

開始測試

步驟五:運行上面代碼控制臺打印出結(jié)果如下:

打印結(jié)果

怎么樣,觀察者模式是不是很簡單呢?上面就是一套簡單的模板,但是簡單也是一個觀察者模式。觀察者有推模式和拉模式,我上面寫的是拉模式,給我感覺這兩種模式就是一個引用問題而已,推模式就是改變下面的引用為String而已(請忽略報錯,因為我沒改基類類型,這里只展示一下)

推模式

以為就這么簡單就可以了??這也太不靈活了吧,什么消息都推,人家高富帥不可能全部的小米手機都想收到消息,他就想收到高配的消息,屌絲也知道自己的情況,高端機是不可能的啦,就想收到低配價錢低的手機,所以我們要靈活處理這些需求。那我們接下來就拿上面模板來稍作修改。

修改地方一:觀察者里面加多角色設(shè)置、獲取方法

增加角色設(shè)置

修改地方二:目標類的通知更新然子類去實現(xiàn)

修改目標通知方法

修改地方三:具體的目標具體通知

修改具體目標具體通知

修改地方四:測試端代碼:


運行以上代碼,控制臺實現(xiàn)打印:

結(jié)果打印

以上就是我對觀察者模式的講解,我比較喜歡截圖代碼來展示,這樣你們也看的舒服,文字估計早就關(guān)閉頁面了,有什么不足點請大家多多指出,謝謝各位老鐵了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,048評論 25 709
  • 1 場景問題# 1.1 訂閱報紙的過程## 來考慮實際生活中訂閱報紙的過程,這里簡單總結(jié)了一下,訂閱報紙的基本流程...
    七寸知架構(gòu)閱讀 4,810評論 5 57
  • 設(shè)計模式匯總 一、基礎(chǔ)知識 1. 設(shè)計模式概述 定義:設(shè)計模式(Design Pattern)是一套被反復(fù)使用、多...
    MinoyJet閱讀 4,093評論 1 15
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,568評論 19 139
  • 只如船順水而流,水在哪兒,船在哪兒;船在哪兒,人在哪兒;人在哪兒,心在哪兒。 詩和遠方了然于心,當下即是不求果報。...
    掌門艾老師閱讀 187評論 0 0

友情鏈接更多精彩內(nèi)容