Observer Pattern in Javascript
Observer Pattern 的重點是, publisher發佈消息之後,subscriber會自動對消息作出反應.
I. Publisher
1. Publisher構造函數
- 一個數組
- 方法:
- subscribe : 添加func到array
- unsubscribe: 從array中remove function
- publish : 當publisher publish 消息的時候, 所有subscriber的方法都會給觸發
2. makePublisher(o)
將publisher 的方法複製到object O中,為其添加publisher的方法
該方法中沒有observer
Example 1- Here
Example 2 – oreilly (Live)
- game是window的訂閱者,當window中的onkeypress給觸發,其handlekeypress會立即給觸發
- Player是game的訂閱者,當game.handlekeypress給觸發,Player的play會立即給觸發
- game同是又是Player的訂閱者,當Player.play給觸發,game.handlePlay會立即給觸發
- scoreboard是game的handleplay訂閱者,當game.handlePlay給觸發, scoreboard.update會立即給觸發
window.onkeypress –> game.handlekeypress –> Player:play –> game: handlePlay –> scoreboard.update
II. Publisher & Observer
1. Publisher
包含一個數組記錄所有subscribers和publish方法
2. Subscriber
包含subscribe 和 unsubscribe
Example from book 『Pro Javascript Design Patterns』
目前没有评论。