快速學習 10 委託 事件 觀察者模式(一

2021-08-28 09:22:18 字數 1092 閱讀 4569

一對一:人只有乙個身份證號碼

一對多:乙個人可以有多個號碼 (qq號 **號 車牌號 等)

多對多:多個人 多個號碼

觀察者模式,又稱為發布訂閱模式,基於一對多的原理。

定義了物件之間的一對多依賴 ,當乙個物件改變狀態時,它的所有訂閱者都會收到通知並自動更新 

舉例直播

你訂閱了乙個主播。 當主播上線直播時,就會通知你。 

主播任務就是直播,他不知道有誰,多少人訂閱他(假設)

當你訂閱主播,只要主播開播,便可以收到主播開播的訊息

有訂閱就有取消訂閱 (粉轉黑)

那我們用**模擬一下

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace 委託事件

}/// /// 主播

///

public class host

/// /// 開播了

///

public void starthost()}}

/// /// 新增觀眾

///

///

public void addplayer(player player)

}/// /// 玩家 觀眾

///

public class player

/// /// 接受開播了

///

///

public void accepmessage(string name)}}

結果 沒有問題 ,主播開播 ,執行通知訂閱觀眾玩家

模擬主播開播了,訂閱的收到訊息

C 筆記11多播委託 事件 設計模式(觀察者模式)

事件初步理解多播委託為委託列表static action int all static action int addthenprint i static action int print i console.writeline i main 多播委託,可以理解為乙個列表,只要其中元素函式簽名一致,就...

10 觀察者模式

定義 定義了一種一對多的依賴關係,讓多個觀察者物件同時監聽某乙個主題物件。這個主題物件在狀態發生變化時,會通知所有觀察者物件,使他們能夠自動更新自己。總的來說,觀察者模式所做的工作其實就是在解除耦合,讓耦合的雙方都依賴於抽象,而不是依賴於具體,從而使得各自的變化都不會影響另一邊的變化。1.抽象sub...

物件委託(9)觀察者模式

在寫這篇文章之前,已經寫過了幾篇關於改物件委託主題的文章,想要了解的朋友可以去翻一下之前的文章 它是這樣定義的 觀察者模式定義了一種一對多的依賴關係 讓多個觀察者物件同時監聽某乙個主題物件 這個主題物件再狀態發生變更時 會通知全部觀察者物件 使它們能夠自動更新自己 我的懂得是這樣的,在公共課上,教師...