最少知識(shí)原則說的是一個(gè)軟件實(shí)體應(yīng)當(dāng)盡可能的與其他實(shí)體減少相互作用蹋辅。
這里的軟件實(shí)體是一個(gè)廣義概念钱贯,不僅包括對(duì)象,還包括系統(tǒng)侦另,類秩命,模塊,函數(shù)褒傅,變量燈弃锐。這樣來說最少知識(shí)原則涵蓋的范圍就很大了。下面看看和javascript相關(guān)的內(nèi)容
參考《javascirpt模式設(shè)計(jì)與開發(fā)實(shí)踐》第19章
減少對(duì)象之間的聯(lián)系
最少知識(shí)原則指導(dǎo)我們殿托,如果兩個(gè)對(duì)象之間不必彼此通訊霹菊,那么這兩個(gè)對(duì)象之間就不要發(fā)生直接聯(lián)系。常見的做法是引入一個(gè)第三者來承擔(dān)彼此的通信任務(wù)支竹。javascript設(shè)計(jì)模式中的最少知識(shí)原則
中介者模式
這個(gè)模式是使用者們是不發(fā)生任何聯(lián)系的旋廷,所有的信息都是由中介者來完成。
react通過引入redux應(yīng)該就是這種模式礼搁。react組件之間不再發(fā)生任何的聯(lián)系饶碘,所有與組件state變化的通訊請(qǐng)求都是通過redux來完成的。這樣一來馒吴,組件可以應(yīng)對(duì)復(fù)雜的state變化扎运。
外觀模式
這是針對(duì)使用者而言的。外觀模式作用是對(duì)交互使用者隱藏子系統(tǒng)的復(fù)雜性饮戳。
- [ ] 外觀模式為一組系統(tǒng)提供一個(gè)便利的入口豪治。在jquery中兼容了瀏覽器的差異,但是使用者使用的是同一個(gè)api接口莹捡,就是一個(gè)體現(xiàn)
- [ ] 隔離使用者和復(fù)雜系統(tǒng)的聯(lián)系鬼吵,使用者不需要去了解具體的差異
javascript的函數(shù)封裝
javascript函數(shù)有著至高無上的權(quán)利扣甲,靈活性很大篮赢。通過使用閉包隱藏變量齿椅,通過單例模式,揭示模式启泣,策略模式.javascript使用函數(shù)和對(duì)象字面量的方法隱藏具體的實(shí)現(xiàn)邏輯涣脚。只暴露相關(guān)的方法。
這就是最少知識(shí)原則寥茫。這也是基礎(chǔ)原則在javascript程序設(shè)計(jì)中應(yīng)該是時(shí)刻都要體現(xiàn)這種原則遣蚀。