本節主要內容:1、觀察者模式意圖;2、觀察者模式uml圖描述;3、舉例說明;
一、觀察者模式意圖:
定義了一種一對多得依賴關係,讓多個觀察者物件同時監聽某乙個主題物件。這個主題物件在狀態發生變化時,會通知所有觀察者物件,使它們能夠自動更新自己。
define a one-to-many dependency between objects so that one object changes state,all its dependents are notified and updated automatically.
二、uml描述
三、舉例說明:
貓叫,主人醒,老鼠跑
observer**:
view code
using system;複製**using system.collections.generic;
using system.linq;
using system.text;
namespace y.observerpattern
public class host:iobserver
}public class rat:iobserver}}
cat**:
view code
using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace y.observerpattern
public void detach(iobserver observer)
public void meou()}}
}program.cs
using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace y.observerpattern}}
執行結果:
大話設計模式之觀察者模式
觀察者模式 定義了一種一對多的依賴關係,讓多個觀察者物件同時監聽某乙個主題物件。這個主題物件在狀態上發生變化時,會通知所有觀察者物件,使它們能夠自動更新自己。觀察者模式所涉及的角色有 抽象主題 subject 角色 public abstract class subject 避免同乙個觀察者註冊多次...
大話設計模式之觀察者模式
大話設計模式之觀察者模式 為了了解觀察者模式,我們首先看下報紙的訂閱是怎麼回事 1 報社的業務是出版報紙。2 向某家報社訂閱報紙,只要他們有新報紙出版,就會給你送來。只要你是他們的客戶,你就會一直收到報紙。3 當你不想再看報紙的時候,取消訂閱,他們就不會再送新報紙來。4 只要報社還在運營,就會一直有...
大話設計模式觀察者模式c 實現
其他二十三種設計模式 include include using namespace std 觀察者模式 抽象觀察者類 class abstractobserver 抽象通知者類 class abstractsubject 具體通知者類 class concretesubject public ab...