-
觀察者模式流程圖查看全部
-
兩種模型的比較: 推模型是假定目標對象知道觀察者需要的數據 拉模型是目標對象不知道觀察者具體需要什么數據,因此把自身傳給觀察者,由觀察者來取值。查看全部
-
拉模型 目標對象在通知觀察者的時候,只傳遞少量信息。 如果觀察者需要更多具體的信息,由觀察者主動到目標對象中獲取,相當于是觀察者從目標對象中拉數據。 一般這種模型的實現中,會把目標對象自身通過update方法傳遞給觀察者。查看全部
-
推模型: 目標對象主動向觀察者推送目標的詳細信息 推送的信息通常是目標對象的全部或部分數據查看全部
-
觀察者模式調用時序之運行階段查看全部
-
觀察者模式調用時序之準備階段查看全部
-
在目標的實現類中先根據狀態的情況進行判斷 如果滿足的話再判斷 觀察者的名字然后再進行更新查看全部
-
在觀察者的接口中要有獲取和設置觀察者名字的方法,因為在目標類中需要知道觀察者的名字然后再根據名字進行不同的處理查看全部
-
區別對待的觀察者模型中和通用觀察者模型的卻別在于要根據不同的觀察者來進行不同的推送,所以區別在于目標類中的統治方法需要在具體的目標類中進行實現。(因為需要根據不同的情況進行更新,所以需要在具體的目標類中實現剛剛那個方法)查看全部
-
實現的步驟查看全部
-
模型分為推模型和拉模型: 推模型 是目標類根據不同的觀察者需求來推送不同的內容給觀察者,所以如果出現新的觀察者有新的需求就要修改update方法了,所以擴展性不好 拉模型 是目標類直接把自己本身發送給觀察者,讓觀察者自己從里面獲取想要的數據,擴展性更好查看全部
-
運行階段查看全部
-
觀察者和目標類的關系可以是一對多,也可以是一對一,也可以是一個觀察者對多個目標類。(觀察者可以響應不同目標類的事件),目標類的命名應該以Subject結尾,而觀察者類應該以Observe結尾。在具體的目標類中改變狀態要在調用通知之前。查看全部
-
具體的應用步驟: 1:創建目標(實例化目標類) 2:創建和設置觀察者(實例化觀察者并且設置觀察者的字段) 3:調用目標實例的添加方法把觀察者加入目標類的觀察隊列中 4:改變目標類的狀態查看全部
-
實現觀察者類的Update方法,用來從目標對象中接收消息,并且打印消息查看全部
舉報
0/150
提交
取消