设计原则:1) 封装变化的部分
2) 针对接口编程,而不是针对实现变成
3)多用组合,少用继承
设计模式: 策略模式:定义算法族(将变化的抽取为算法),让他们彼此可以替换(继承相同的接口)。
优点:将算法变化独立于使用算法的客户,使用者无需关心具体的行为只需要调用相应的方法,方法的具体实现由算法族提供实现。
例子:本文以鸭子为例,这里鸭子内部的display、fly、quack方法不同类型鸭子会有相应变化。因此利用策略模式,将鸭子变化的行为以组合的方式结合到抽象Duck。这里Duck用抽象类而不是接口,为了公用共同的属性,方法,并且在子类中明确变化的行为。
网友评论