中介者模式
什么叫中介者模式
中介者模式的作用就是解除對象與對象之間的緊耦合關(guān)系
增加一個(gè)中介者對象后,所有的相關(guān)對象都通過中介者對象來通信,而不是互相引用,所以當(dāng)一個(gè)對象發(fā)生改變時(shí),只需要通知中介者對象即可。
中介者使各對象之間耦合松散,而且可以獨(dú)立的地改變他們之間的交互,中介者模式使網(wǎng)狀的多對多關(guān)系變成了一對多的關(guān)系
下面我們來看兩張圖直觀體會一下中介者模式

2.jpg

1.jpg
vuex 和 redux 就使典型的中介者模式
缺點(diǎn):
- 新增一個(gè)中介者對象,如果對象間交互非常復(fù)雜,會導(dǎo)致中介者對象很復(fù)雜,最后往往難以維護(hù)
- 過度集中化,中介者出現(xiàn)故障,那么代碼可能出現(xiàn)問題
怎么取衡量是否使用中介者模式呢
中介者模式可以非常方便對模塊或者對象進(jìn)行解耦,但對象之間并非需要解耦,實(shí)際項(xiàng)目中,模塊和對象有一些依賴關(guān)系是正常的,
一般來說如果對象之間的復(fù)雜耦合度導(dǎo)致了代碼維護(hù)和調(diào)用出現(xiàn)了困難,而這些耦合度隨項(xiàng)目的變化程指數(shù)增長曲線,那么這個(gè)時(shí)候我們就可以考慮中介者模式來重構(gòu)代碼
部分內(nèi)容取自:js設(shè)計(jì)模式與開發(fā)實(shí)踐