1.找出应用(代码)中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起(基本设计思想)

附:把变化的部分抽取出来,以后需求变化也可以轻易扩展而不影响不需要变化的部分

 

2.针对接口编程,而不是针对实现编程

 

3.多用组合,少用继承