用委託實現發布 訂閱

2021-08-21 11:16:20 字數 514 閱讀 1389

cat類中包含乙個事件,當cat狀態發生改變時,觸發該事件。

事件是一種特殊的委託,關鍵字是event。與委託的不同之處在於:事件不能在類的外部觸發,只能在類的內部觸發。

class cat

public void catcoming() //發布}}

mouse類需要實時關注cat的狀態,從而執行自己的動作。所以需要將方法runaway()註冊到cat類的事件event action catcome中。

class mouse

public void runaway()

}

建立物件,註冊事件,實現訂閱/發布模式。

static void main(string args)

執行結果

委託的訂閱發布模式

委託的訂閱發布模式 delegate這個關鍵字,在c 裡翻譯成委託,其英文原意就是 委託的意思。想想生活中委託的例項。比如生產香皂的公司,它可以把銷售的業務交給 商,而不是自己與終端使用者打交道。我們把生產香皂的公司寫成類 productclass,負責銷售的 商寫成salesclass,生產者生產...

C 委託事件機制 訂閱發布

在看下文的時候,你先要明白乙個問題,什麼是委託,什麼是事件。但其實很讓人頭疼無解的是,即使有的時候你明白了這些原理,但在實際的運用中還是一臉懵逼,無從下手。其實在很多的時候,你可能在wpf,winfrom的使用的多,不過這坑爹玩意又不能不去弄明白!委託和事件 委託 方法作另乙個方法的引數 和類一樣,...

Java實現Redis發布訂閱

jedis使用指南 簡介 redis提供了基於 發布 訂閱 模式的訊息機制,此種模式下,訊息發布者和訂閱者不進行直接通訊,發布者客戶端向指定的頻道 channel 發布訊息,訂閱該頻道的每個客戶端都可以收到該訊息 頻道沒有 建立 的概念,可以直接訂閱 亦可直接發布訊息 下圖展示了頻道 channel...