Head First设计模式笔记 第一章 继承除了覆盖旧的方法外不容易改变方法逻辑,不利于程序的修改,接口里的方法没有实现,所以不利于代码复用。所以,要用到组合的思想,在类中将可变化的部分抽离出来;进一步,抽离出来的部分也要接口化,真正的实现委托给接口真正指向的对象,以便于之后的修改。即:“有一个比是一个更好”。OO原则 :封装“变化”,多用组合,少用继承,针对接口编程,不针对实现编程策略模式:定义算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。 (算法组实际上指的接口实际指向的对象,也即是封装的可替换的行为,一组行为 -> 一族可相互替换的“算法”)