《JavaScript設計模式與開發實踐》原則篇(2)—— 最少知識原則

最少知識原則(LKP)說的是一個軟件實體應當儘量少地與其餘實體發生相互做用。這 裏的軟件實體是一個廣義的概念,不只包括對象,還包括系統、類、模塊、函數、變量等。 單一職責原則指導咱們把對象劃分紅較小的粒度,這能夠提升對象的可複用性。但愈來愈 多的對象之間可能會產生錯綜複雜的聯繫,若是修改了其中一個對象,極可能會影響到跟它相 互引用的其餘對象。對象和對象耦合在一塊兒,有可能會下降它們的可複用性。設計模式

使用LKP的設計模式

  • 中介者模式 中介者模式很好地體現了最少知識原則。經過增長一箇中介者對象,讓全部的相關對象都通 過中介者對象來通訊,而不是互相引用。因此,當一個對象發生改變時,只須要通知中介者對象 便可。

封裝在最少知識原則中的體現

封裝在很大程度上表達的是數據的隱藏。一個模塊或者對象能夠將內部的數據或者實現細 節隱藏起來,只暴露必要的接口 API 供外界訪問。對象之間不免產生聯繫,當一個對象必須引 用另一個對象的時候,咱們可讓對象只暴露必要的接口,讓對象之間的聯繫限制在最小的範圍以內。 把變量的可見性限制在一個儘量小的範圍內,這個變量對其餘不相關模塊的影響就越小, 變量被改寫和發生衝突的機會也越小。這也是廣義的LKP的一種體現函數

總結

雖然遵照最小知識原則減小了對象之間的依賴,但也有可能增長一些龐大到難 以維護的第三者對象。在實際開發中,是否選擇讓代碼符合最少知識原則, 要根據具體的環境來定。post

系列文章:

《JavaScript設計模式與開發實踐》最全知識點彙總大全設計

相關文章
相關標籤/搜索