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