找出应用中可能需要变化之处,将他们独立出来,不需要和哪些不需要变化的代码混在一起针对接口编程,针对超类型编程,关键是利用多态多用组合,少用继承为了交互对象松耦合设计而努力最少知识原则 策略模式,让算法变化独立于使用算法客户