android設計模式之--觀察者模式

來源:互聯網
上載者:User

android設計模式之--觀察者模式

最近比較忙,好久沒有更新部落格了,今天就將最近研究的一個東西總結一下,最近在維護公司的一個項目,我負責的模組主要是下載雜誌後及時的更新UI,將最新的下載進度更新到UI上,中間遇到的一個問題是:同一個對象的下載進度會有多個Item監聽它的狀態,也就是說一個進度要更新到多個Item上,開始沒有什麼頭緒,百度一番後發現了觀察者模式這個東西,它就是為了滿足這種一對多問題而出現的.

有了思路以後,就著手開始瞭解觀察者模式是如何工作的,雖然以前知道設計模式裡有這個東西,但還真是沒用過,下面就講解一下觀察者模式如何在項目中實際應用.先看一下應用在項目中的效果:

:同一本書在書店頁與書架頁的下載進度是要完全一樣的,我們可以用觀察者模式達到這種效果.
<喎?http://www.bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+ICAxLrnbsuzV38Sjyr2w/LqstcTE2sjdOrnbsuzV38Sjyr3W0Nb30qrT0LnbsuzV37rNsbu527Ls1d/BvdbWttTP8yyxu7nbsuzV39b30qrKtc/Wyv2+3bvy17TMrLXEuPzQwizT0Lj80MK6882o1qrL+dPQtcS527Ls1d8stvi527Ls1d/U8tb30qq4utTwytW1vc2o1qq68yzIpbj80MLX1Ly6y/m52NeitcTE2sjdLjwvcD4KPHA+ICAyLrnbsuzV38Sjyr21xMq508OyvdboOjEptLS9qNK7uPYgU3ViamVjdCjW98zivdO/2iksvdO/2tbQ09Cxu7nbsuzV39KqyrXP1rXEy/nT0LmmxNw7Mim0tL2o0ru49rnbsuzV373Tv9osy/nT0Mq1z9bBy7TLvdO/2rmmxNy1xCy2vLG7s8bOqrnbsuzV3ywzKb2ry/nT0Mq1z9bBy7nbsuzV373Tv9q1xLnbsuzV37a816Ky4bW9sbu527Ls1d/W0C40KbG7uduy7NXfzai5/bHpwPrL+dPQtcS527Ls1d+21M/zLLX308PG5Mq1z9a1xLnbsuzV373Tv9q3vbeoLii+zcrH0ru49r3Tv9q1xLvYtfe5/bPMKTxicj4KPC9wPgo8cD4gINa70qrKtc/WwcvS1MnPy8S49rK91ui+zbPJuaa1xLS0vajSu7j2uduy7NXfxKPKvSzPwsPmysfO0s/uxL/W0NPDtb2527Ls1d/Eo8q9tcS/8rzcveG5uTo8L3A+CjxwPiAgMS60tL2o0ru49lN1YmplY3TW98zivdO/2iy2qNLlwcuxu7nbsuzV37XEuabE3C7I5828OjwvcD4KPHA+ICA8aW1nIHNyYz0="http://www.2cto.com/uploadfile/Collfiles/20141202/2014120208141752.jpg" alt="\">

這裡定義了被觀察者的功能和添加,刪除觀察者..

2.建立一個被觀察者對象,實現此主題介面功能


此處,我省略了項目裡其它的代碼,只留下一個架構結構.這樣我們的被觀察者類就建立好了.

3.建立觀察者介面,定義好觀察者要實現的功能.


4.建立我們的觀察者類,:

系統的設計就可以看的出,系統的設計本身就使用了非常多的觀察者模式,例如 : View的事件監聽機制,ContentProvider 的 ContentObserver, BaseAdapter的設計,可見,觀察者模式是十分重要的,是我們必須掌握的.2.掌握觀察者模式的前提是必須熟練使用介面回調,觀察者模式其實就是一個複雜的介面回調.


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.