1. 程式人生 > >觀察者模式和事件監聽模式的區別

觀察者模式和事件監聽模式的區別

監聽機制 其他 不包含 機制 監聽 多態 場景 觀察者模式 特定


事件監聽模式更像是觀察者模式的進階。

觀察者模式中,‘主題’會在特定邏輯下通知所有‘觀察者’。
如果這個通知不包含任何信息,那麽這種實現就是通常的觀察者模式。

如果‘主題’通知‘觀察者’的過程帶有一些<其他信息>。那麽‘主題’本身已經上升成為了‘事件源’,
而通知中帶有的<其他信息>經過封裝就成為了事件。

事件監聽模式的優勢:
在很多應用場景中,通知中附帶的<其他信息>是必不可少的,
事件Event則對這些<信息>進行了封裝,使它本身擁有了多態的特性。
每個事件對象就可以包含不同的信息。但各個‘觀察者’提供給‘主題’的接口仍然是統一的 :
onNotify(entity, event)

總結來說 事件監聽機制就是對觀察者模式進行了進一步抽象,節省了代碼量。

觀察者模式和事件監聽模式的區別