Observer pattern 觀察者模式 (訪問者模式): 

這個模式的基本想法如下:首先我們擁有一個由許多對象構成的對象結構,這些對象的都擁有一個accept方法用來接受訪問者對象;訪問者是一個接口,它擁有一個visit方法,這個方法對訪問到的對象結構中不同類型的元素作出不同的反應;在對象結構的一次訪問過程中,我們遍歷整個對象結構,對每一個元素都實施accept方法,在每一個元素的accept方法中回調訪問者的visit方法,從而使訪問者得以處理對象結構的每一個元素。我們可以針對對象結構設計不同的實在的訪問者類來完成不同的操作。 通常使用在訂閱或需要推播的系統上。

 

範例

Class diagram : 

 

說明 : 

先創立兩個abstract class(Subject : 被觀察者, Observer : 觀察者), 我以餐廳推播系統為例子,首先將Subject新增一個concrete class, Restaurant,他擁有新增、移除、通知observer的功能,當Restaurant變更State的時候使用NotifyObserver功能請每一位Customer使用Update這個功能更新目前餐廳營業狀態。

 

來源參考 : wiki

arrow
arrow
    文章標籤
    Observer pattern 觀察者模式
    全站熱搜

    橘子亂說話 發表在 痞客邦 留言(0) 人氣()