#### 1.什么是觀察者模式
當有多個觀察者想同時觀察同一個主題對象的時候,當主題對象的狀態發生變化,觀察者能夠回調自身的方法去更新自己。

實現步驟:
1)定義一個觀察者接口;
2)觀察者實現觀察者接口;
3)有一個被通知者接口,里面有addObserver(Observer observer),removeObserver(Observer observer), notifyObserver()方法。
4)在被觀察者發生變化的時候,調用notifyObserver(),遍歷List,回調observer里面的方法。
實例:
1)RecyclerView和ListView的Adapter就是采用了觀察者模式。
2)Android系統內容提供者,內容觀察者也是采用了觀察者模式。
~~~
1)在RecyclerView的setAdapter()方法里面,它會認為注冊mObservable,使其變得是可以觀察的;
2)接著RecyclerView內部會把自己的observer注冊到observable中;
3)在Adapter調用對應的notify函數的時候,observable會去通知那些注冊到它這兒的observer去執行相應的動作。
~~~
>
優點:
很好地解耦了通知者與觀察者。觀察者不需要了解通知者內部是怎么實現的,方便日后代碼的修改,體現 了依賴倒轉的原則。
缺點:
1.所有更新對象的動作都一樣;
2.抽象通知者還是依賴了抽象觀察者。
#### 2.事件委托