设计原则1:封装变化点
找出应用中可能需要 变化之处,把它们独立出来,不要和那些不需要变化的部分放在一起。
即把会变化的部分封装起来,以便以后可以轻易地改动或扩充,而不影响不需要变化的部分。
设计原则2: 针对接口编程,而不是针对实现编程
这里的“接口”包含多种含义,接口是一个“概念”,其关键在于多态。利用多态,程序可以针对超类型编程,执行时会根据实际情况执行到真正的行为。
针对接口编程 这句话的意思是 在客户类中,变量的声明类型应该是超类型,通常是一个抽象类或者是一个接口,如此,只要是具体实现该超类或接口的类所产生的对象,都可以指定给这个变量,这也意味着,客户类不负责该变量的行为逻辑,并可以在运行时动态更改。
设计原则3:多用组合,少用继承