1、找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。 把会变化的地方抽取出来进行封装,以便以后可以轻易的扩充此部分,而不影响不需要变化的其他部分。 2、针对接口编程,而不是针对实现编程。