设计原则 : 多用组合,少用继承;
针对接口编程,而不是针对实现编程;即使用多态,
例 : Person p = new Boy(); Person 是接口,或父类
针对接口编程 的真正意思是"针对超类型编程(supertype)"; 关键在于利用多态 ; 使用多态,程序可以针对超类型编程,执行时会根据实际状况执行到真正的行为,不会绑定在超类型的行为上;也就是说,变量的声明应该在超类中,具体的实现在子类中;
找出应用中可能需要变化之处,把他们独立出来,不要和哪些不需要变化的代码混在一起. 把会变化的部分封装起来,让其他部分不会受到影响.
策略模式 : 定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户.
使用说明 : 对于易于变化的部分,抽取并定义到接口中,在超类中声明该接口(只是声明,没有具体实例),调用该接口中的方法;
然后在子类的构造方法中实例化超类中声明的接口;这样就可以将变化的代码影响到最小;
根据不同的需求,在子类的构造函数中传入不同的实例即可