大話設計模式之觀察者模式

2021-06-02 13:24:05 字數 1203 閱讀 8519

本節主要內容: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...