迪米特法則(LoD):一個對象應當對其餘對象有儘量少的瞭解。spa
1.優先考慮將一個類設置成不變類設計
一個對象與外界通訊大致分紅兩種,一種是改變這個對象的狀態的,另外一種是不改變這個對象的狀態的。若是一個對象的內部狀態根本就是不可能改變的,那麼它與外界的通訊就大打折扣。當涉及任何一個類時,都首先考慮這個類的狀態是否須要改變。即便一個類必須是可變類,在給它的屬性設置賦值方法時,除非真的須要,不然不要爲一個屬性設置賦值方法。對象
2.儘可能下降一個類的訪問權限接口
對於頂級的類來講,只有兩個可能的訪問等級:軟件
一個類設置成protected的好處是,一旦這個類發生修改,那麼受影響的客戶端一定都在這個庫內部。因爲一個軟件包有他本身的庫結構,所以一個訪問權限爲protected是不會被應用程序使用的。權限
3.謹慎的使用Serializable程序
一個類若是實現了Serializable接口的話,應用程序能夠將這個類的實例串行話,然和再並行化。因爲串行化和並行化涉及到類的內部結構,若是這個類的內部private結構在一個新的版本發生變化的話,那麼應用程序可能會根據新版本的結構試圖將一個老版本的串行化結果並行化,這會致使失敗。除非絕對必要,不要使用Serializable。並行
4.儘可能下降成員的訪問權限方法
在設計一個類的方法時,必須首先考慮將其設置成private。只有當前庫中還有別的類須要調用這個方法時,纔可將其訪問權限改爲protected.通信