單例模式
- 限制類實(shí)例化次數(shù)只能一次拒迅,一個(gè)類只有一個(gè)實(shí)例施符,并提供一個(gè)訪問它的全局訪問點(diǎn)甲馋。
- 比如:window對(duì)象、document對(duì)象嗜湃、vuex的store
工廠模式
- 不暴露創(chuàng)建對(duì)象的具體邏輯奈应,而是將邏輯封裝在一個(gè)函數(shù)中,根據(jù)不同的輸入返回不同的實(shí)例购披,一般用來創(chuàng)建同一類對(duì)象
- 比如:創(chuàng)建對(duì)象的工廠函數(shù)方法
代理模式
- 為一個(gè)對(duì)象找一個(gè)替代對(duì)象杖挣,以便對(duì)原對(duì)象進(jìn)行訪問。
比如:vue使用proxy代理對(duì)象今瀑,實(shí)現(xiàn)對(duì)原對(duì)象的訪問控制
觀察者模式
- 定義了對(duì)象間一種一對(duì)多的依賴關(guān)系程梦,當(dāng)目標(biāo)對(duì)象 Subject(主題) 的狀態(tài)發(fā)生改變時(shí),所有依賴它的對(duì)象 Observer(觀察者) 都會(huì)得到通知橘荠。
- 比如:js中的事件方式
發(fā)布/訂閱模式
- 是對(duì)象中的一種一對(duì)多的依賴關(guān)系,當(dāng)一個(gè)對(duì)象觸發(fā)一個(gè)事件的時(shí)候郎逃,所有訂閱該事件的對(duì)象將得到通知。該模式比觀察者模式多了中間層的“第三者”—調(diào)度中心褒翰,由調(diào)度中心派發(fā)消息給所有訂閱者
- 比如:Vue EventBus中的 $on 和 $emit 方法