1. 對於靜態方法,應該使用類名去使用,不應該用實例去引用,主要是爲了體現更多的語義。
Thread.sleep(1000);
//避免,無法體現sleep 是靜態方法還是實例方法
thread.sleep(1000);
2 對一些基本數據類型和不太可能通過繼承進行擴展的類,應聲明爲final,提高效率。
3 類和方法的粒度保持適中,保持類的規模儘量短小,職責單一。小類有很多好處,易
於設計,易於測試,易於理解。同樣方法也要儘量的小,每個方法儘量不要超出25 行。
4 開閉原則,軟件應該對擴展開放,對修改開放。也就是說,應該在不修改以前源代碼
的基礎上,改變程序的行爲以適應新的需求。
5 里氏代換原則:假設有兩個類,一個是基類Base,一個是派生類Derived,如果一個
方法可以接受基類對象b 的話:method1(Base b),同樣,這個方法也應該接受派生類Derived
的對象d,而不影響方法的行爲。里氏代換原則是繼承複用的基石。
6 抽象依賴原則(穩定依賴原則)。應該依賴於抽象而不依賴與具體類,抽象的類和接口是
穩定的,而具體類是易變的,如果依賴於具體類,代碼就會非常脆弱,失去了靈活性。
7 接口隔離原則,一個類對另外一個類的依賴應該建立在最小的接口之上的。
8 單一職責原則,如果一個類有多於一種的職責,當需求變化時,類的職責就要發生變化,而
因此就會引起引用該類的代碼發生改變,職責越多,這個類就容易跟更多的類產生耦合關係,
而且改變一個職責,可能會影響到另外一個職責的履行。
9 編寫代碼前,先編寫註釋(可以認爲是僞代碼),先想後寫。
/**
* 報表構建器,主要職責:
* 1.創建拷貝報表模版
* 2.填充報表數據
* 3.構建報表
* 4.畫圖處理
*/
通過編寫這些僞代碼,可以起到理清思路的作用,這時候再編寫代碼,過程就非常流暢了,
不會編一會兒,想一會兒,刪掉代碼,再重新編。