1、 對於參數類型,優先使用接口而非類
只要存在可用來定義參數的適當接口,就優先使用這個接口,而不是實現該接口的類。
Eg. 沒有理由在編寫一個法方時使用HashTable作爲輸入, 用過使用Map 。 這樣就可以使得我們傳入一個HashTable, HashMap, TreeMap , 的字映射表(submap),也可以傳入Map的實現。
2、 謹慎的使用函數對象
創建函數對象得最容易的辦法是使用 匿名類 , 但會帶來語法上的混亂 。與內聯的控制結構相比, 在功能和性能上的侷限性。
Strategy 和 visitor 模式,使用了 函數對象