監聽者模式

2022-08-24 16:39:11 字數 821 閱讀 6447

在函式裡傳**函式,可以實現在特定的條件下執行想要的功能,但是缺點是什麼呢?如果你要在特定條件下執行很多的功能,咋辦呢?再次呼叫函式,然後**?太囉嗦;

這裡說的監聽者模式呢,其實也是一種思想,用大白話比喻呢就是:比如說有乙個人比賽得了冠軍(也可以是亞軍,233),然後嘞,有三個人分別想做三件事,但是,這三件事只有當前面那個人拿了冠軍,這三件事才會被做;那麼,怎麼辦呢?

用監聽者模式的思想來解決這件事:先定義兩個方法,乙個方法用來將三個人想做的事push進乙個定義好的陣列裡面;另乙個方法,遍歷陣列,執行陣列裡的方法;

(其實我是自己明白的,就怕表達不清楚~)

寫乙個簡單的應用,**如下:

1

//定義乙個person物件

2 let person =,

1011

//在特定條件下呼叫函式,執行listens裡面的函式

12 executelistener : function

() );16}

17};

1819

//分別將要做的事情push進陣列裡面,等拿了冠軍,一起呼叫

20 person.addlistener(function

());

23 person.addlistener(function

());

26 person.addlistener(function

());

2930

31//

拿了冠軍了,好,執行那三件事吧~

32if('拿了冠軍')

監聽者模式

設計乙個事件類,gamelistener,用來儲存各種事件 需要監聽事件變化的類,需要自己主動去註冊監聽 巨集定義 methodname,gamelistener中的方法的名稱 ifndef decalre listener define decalre listener methodname pu...

監聽者模式

監聽者模式有三大組成部分 事件源 eventsource 具有註冊 的方法 事件物件 eventobject 事件 listener 有callback eventobject 方法,當收到事件發生後的處理。事件物件 主要目的是包裝事件源,然後將本身 事件物件 交給 public class eve...

監聽者模式(listener) c 實現

監聽者對大家來說可能並不陌生,所謂監聽者就是用來監聽自已感興趣的事件的,當收到自已感興趣的事件時會做出相應的反映。它的應用是非常廣的,比如win32的訊息機制,它跟監聽者模式就異曲同工,作業系統將產生的各種事件包裝成訊息 msg 該訊息結構包裝了發生的事件的描述資訊,比如訊息值,螢幕座標等,然後將它...