前言:
應用場景:專案做久了以後會越來越大,當很多人去做同乙個人專案的時候,裡面的邏輯耦合度當然是越低越好,有這麼乙個場景
需求:3個人同時開發乙個專案的時候,分別開發登入模組login(),商品模組showshoplist(),書籍模組showbooklist()。
當使用者登入成功的時候,需要使用者資訊去重新整理商品模組,書籍模組。
方法1:開發登入模組的人,當使用者登入成功後,去執行重新整理商品模組showshoplist(),重新整理書籍模組showbooklist(),這個時候,他就必須去了解商品模組,書籍模組各種重置方法,這個時候,來了乙個需求模組,登入成功後還有執行乙個重新整理聯絡人showpeople() 如果這個時候,他正在休假,那這簡直是個噩夢,他要趕回來寫上showpeople()
方法2:登入成功後,丟擲乙個方法,讓所有開發模組的同事,都來監聽這個方法,當在度假的時候,來新的需求模組需要使用者資訊時,監聽一下就好了
姓名:
年齡:登入
效果: 發布 訂閱模式
發布 訂閱模式又叫觀察者模式,它定義物件間的一種一對多的關係,當乙個物件的狀態發生改變時,所有依賴於它的物件都將得到通知。在js中,我們一般用事件模型來替代傳統的發布 訂閱模式。實現 varpubsub function p 訂閱 p.subscribe function flag,fn 發布 p....
發布訂閱模式
不同的語言,相同的模式。最近在關注設計模式的知識,發布訂閱模式其實是物件間一對多的依賴關係,當乙個物件的狀態發生改變時,所有依賴與它的物件都將得到狀態改變的通知。作用 1 廣泛應用於非同步程式設計中 2 物件間鬆散耦合的編寫 自定義事件 let corp 定義乙個公司物件 這裡放乙個列表來緩衝回掉函...
發布 訂閱模式
一 核心概述 發布訂閱模式主要包含三大塊 快取陣列 訂閱 發布 快取陣列 乙個陣列 訂閱往陣列裡面壓入函式fn 發布裡面迴圈遍歷陣列,然後執行陣列中的函式。二 簡單 實現及改進 1 實現 var subpub subpub.cache subpub.subscribe function fn sub...