編輯:關於Android編程
觀察者設計模式的定義:定義了對象之間的一對多依賴,這樣一來,當一個對象改變狀態時,它的所有依賴者都會收到通知並自動更新。
面向對象設計原則:為交互對象之間的松耦全設計而努力
在我們實際應用中,還會遇到一對一、或者多對一的情況。一對一就是,一個目標對應一個觀察者。多對一是指多個目標對應一個觀察者。
松耦合的好處:
一、是它適應變化的靈活性;
二、是當某個服務的內部結構和實現逐漸發生改變時,不影響其他服務
它的類圖
觀察者模式在Android系統中的應用還是相當廣泛的,如監聽器
public void setOnMenuListOnItemClickListener( OnMenuListOnItemClickListener listener) { mListener = listener; } public interface OnMenuListOnItemClickListener { public void onSelectItem(int groupPosition, int childPosition); }設置監聽器,只要onSelectItem被調用,觀察者就能知道。
MenuFragment menuFragment = new MenuFragment(); menuFragment.setOnMenuListOnItemClickListener(this);其實BroadcastReceiver也是用觀察者來實現的,在實際應用中,如果一個事物改變了需要通知另一個事物此時就需要使用觀察者來監控
觀察者模式的優、缺點
優:
1、實現觀察者和被觀察者之間的松耦合
2、支持一對多通知,只要是注冊過的觀察者都能收到通知
缺:
1、可能需要調用多次都能收到所需要的全部數據
2、也可能會有多余的數據
UI效果圖:最終的效果是可以滑動刻度來選取金額,並且滑動停止後必須定位到某個金額上,不能停留在中間。分析:決定用listview來實現上述效果分析UI圖,發現有三種類型的
第二章 APK包反編譯被編譯器處理過的代碼和資源已經打包成了APK,有的甚至被轉化成了二進制文件。但是我們也有一些方法,把這些編譯過的內容給變回原來的樣子,這個過程叫做-
任務描述有一套C寫的代號為“Shooter”的核心算法庫可以解決我們面臨的一些問題,只是這個庫一直用在其他平台。我們現在的任務是將其復用到Andr
安卓6.0 Marshmallow棉花糖版本雖然普及率依然可憐至極,但這並不能阻擋Google開發並推出下一個版本Android N,預計將會是