觀察者模式很好理解,類似於郵件訂閱和rss訂閱,當我們瀏覽一些部落格或wiki時,經常會看到rss圖示,就這的意思是,當你訂閱了該文章,如果後續有更新,會及時通知你。其實,簡單來講就一句話:當乙個物件變化時,其它依賴該物件的物件都會收到通知,並且隨著變化!物件之間是一種一對多的關係。先來看看關係圖:
解釋下這些類的作用:mysubject類就是我們的主物件,observer1和observer2是依賴於mysubject的物件,當mysubject變化時,observer1和observer2必然變化。abstractsubject類中定義著需要監控的物件列表,可以對其進行修改:增加或刪除被監控物件,且當mysubject變化時,負責通知在列表內存在的物件。我們看實現**:
乙個observer介面:
public inte***ce observer
兩個實現類:
public class observer1 implements observer
}
public class observer2 implements observer
}
subject介面及實現類:public inte***ce subject
public abstract class abstractsubject implements subject
@override
public void del(observer observer)
@override
public void notifyobservers() }}
public class mysubject extends abstractsubject
}
測試類:
public class observertest
}
觀察者模式 Observer
個人理解 觀察者模式的核心是subject的attach和detach方法,載入observer物件 uml類圖 實現 public abstract class subject public void detach observer observer public void notify publ...
觀察者模式 ObServer
觀察者模式 observer 定義物件間的一種一對多的依賴關係,當乙個物件的狀態發生改變時,所有依賴於它的物件都得到通知並被自動更新 觀察者模式 observer 觀察者模式定義了一對多依賴關係,讓多個觀察者物件同時監聽某乙個主題物件。讓主題物件在狀態發生變化時,會通知所有觀察者物件,讓他們能夠自動...
觀察者模式(OBSERVER)
觀察者模式是我選擇將其列出來的第乙個模式。看了這個模式的概念之後,有種豁然開朗的感覺。工作也由實踐上公升到了理論。平時使用的各種 net 控制項都使用了這種模式,將這種模式應用到組成乙個系統的各個元件中去,怎乙個 妙 字了得。理解了它之後,不竟又對 net 的框架敬佩有佳。不知道這其中隱藏了多少未知...