1、 对于参数类型,优先使用接口而非类
只要存在可用来定义参数的适当接口,就优先使用这个接口,而不是实现该接口的类。
Eg. 没有理由在编写一个法方时使用HashTable作为输入, 用过使用Map 。 这样就可以使得我们传入一个HashTable, HashMap, TreeMap , 的字映射表(submap),也可以传入Map的实现。
2、 谨慎的使用函数对象
创建函数对象得最容易的办法是使用 匿名类 , 但会带来语法上的混乱 。与内联的控制结构相比, 在功能和性能上的局限性。
Strategy 和 visitor 模式,使用了 函数对象