# Observer Pattern  ## Terms #### (1). 主題、對象、目標 Subject -> 被(大眾)觀察的對象、名人 #### (2). 觀察者、訂閱者 Observer, Subscriber #### (3). 觀察者 如何跟 主題 產生連結,開啟小鈴鐺「訂閱(Subscribe)」 觀察者選擇有興趣的主題進行訂閱 * Ken 訂閱 JavaScript Weekly * Ken 追蹤 PJCHENder網頁開發咩腳 #### (4). 名人藉由通知(Notify),將新訊息傳給訂閱者 * JavaScript Weekly 每週都會發新文章連結到 Ken 的信箱 ### 1. Observers subscribe subjects ### 2. Subjects notify observers ### 3. 訂閱之後就能自動收到更新、通知 -> Observer Pattern --- ## 使用時機:某特定事件發生了,我想要對此作出反應 ### 按鈕 (+) 被點擊了,我想要把變數 count + 1     ###  [不使用 Observer Pattern](https://codesandbox.io/s/without-observer-pattern-wcwm56)  ## Observer Pattern的優缺點 > > 優點 > 1. 降低目標與觀察者間的耦合關係,兩者之間為抽象耦合關係。 > 2. 目標與觀察者間建立了一套觸發機制。 > > 缺點 > 1. 目標與觀察者間的依賴並無完全切除。 > 2. 當觀察者物件多時,會影響效能。 > > Observer Pattern的使用時機 > 1. 物件之間存在一對多的關係,一個物件狀態改變會影響其他物件時。 > > ref: https://ianjustin39.github.io/ianlife/design-pattern/observer-pattern/ ## 參考文章 * https://www.patterns.dev/posts/observer-pattern/ * https://dev.to/danlee0528/design-pattern-the-observer-pattern-3oha * https://notfalse.net/11/pub-sub-pattern * https://notfalse.net/10/observer-pattern * https://ianjustin39.github.io/ianlife/design-pattern/observer-pattern/
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up