1、定義
一個對象應該對其餘對象有最少的瞭解。對象
在介紹具體含義以前先解釋下什麼是朋友類:變量
出如今成員變量、方法的輸入輸出參數中的類稱爲成員朋友類,而出如今方法體內部的類不屬於朋友類。重構
最少知識原則的包含的具體含義:軟件
- 只和朋友交流。類與類之間的關係是創建在類間的,而不是方法間,所以一個方法儘可能不引入一個類中不存在的對象。換句話說在方法中應儘可能避免調用朋友返回的對象(朋友的朋友)的方法。固然,JDK API提供的類除外。
- 朋友間也是有距離的。儘可能不要對外公佈太多的public方法和非靜態的public變量,儘可能內斂,多使用private、package-private、protected等訪問權限。
- 是本身的就是本身的。若是一個方法放在本類中,既不增長類間關係,也對本類不產生負面影響,那就放置在本類中。
2、優缺點
(一)優勢
下降模塊間的耦合,提高了軟件的可維護性和可重用性。權限
(二)缺點
在系統裏造出大量的小方法,這些方法僅僅是傳遞間接的調用,與系統的業務邏輯無關。方法
3、建議
- 若是一個類跳轉兩次以上才能訪問到另外一個類,就須要想辦法進行重構了。
- 須要反覆權衡,既作到讓結構清晰,又作到高內聚、低耦合。