最少知識原則(LKP)說的是一個軟件實體應當儘量少地與其餘實體發生相互做用。這 裏的軟件實體是一個廣義的概念,不只包括對象,還包括系統、類、模塊、函數、變量等。 單一職責原則指導咱們把對象劃分紅較小的粒度,這能夠提升對象的可複用性。但愈來愈 多的對象之間可能會產生錯綜複雜的聯繫,若是修改了其中一個對象,極可能會影響到跟它相 互引用的其餘對象。對象和對象耦合在一塊兒,有可能會下降它們的可複用性。設計模式
封裝在很大程度上表達的是數據的隱藏。一個模塊或者對象能夠將內部的數據或者實現細 節隱藏起來,只暴露必要的接口 API 供外界訪問。對象之間不免產生聯繫,當一個對象必須引 用另一個對象的時候,咱們可讓對象只暴露必要的接口,讓對象之間的聯繫限制在最小的範圍以內。 把變量的可見性限制在一個儘量小的範圍內,這個變量對其餘不相關模塊的影響就越小, 變量被改寫和發生衝突的機會也越小。這也是廣義的LKP的一種體現函數
雖然遵照最小知識原則減小了對象之間的依賴,但也有可能增長一些龐大到難 以維護的第三者對象。在實際開發中,是否選擇讓代碼符合最少知識原則, 要根據具體的環境來定。post