1. 面向接口编程,而不是实现编程 2. 优先使用对象组合,而不是类继承 3. 将可变的部分和不可变的部分分离 ….
参考资料:http://www.ibm.com/developerworks/cn/java/reuse/