定义:定义了算法族,把他们分别分装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用该算法的客户。
分解:
在OO设计中,有的类的属性是需要变化的,我们就可以把这些变化的部分提出来成为独立的接口,具体的行为实现来实现这些接口,这些接口及其实现就是所说的算法族,在需要使用这些算
1、 提供了一种替代继承的方法,而且既保持了继承的优点(代码重用)还比继承更灵活(算法独立,可以任意扩展)。
2、 避免程序中使用多重条件转移语句,使系统更灵活,并易于扩展。 3、 遵守大部分GRASP原则和常用设计原则,高内聚、低偶合。
缺点:
1、 因为每个具体策略类都会产生一个新类,所以会增加系统需要维护的类的数量。
分解:
在OO设计中,有的类的属性是需要变化的,我们就可以把这些变化的部分提出来成为独立的接口,具体的行为实现来实现这些接口,这些接口及其实现就是所说的算法族,在需要使用这些算
1、 提供了一种替代继承的方法,而且既保持了继承的优点(代码重用)还比继承更灵活(算法独立,可以任意扩展)。
2、 避免程序中使用多重条件转移语句,使系统更灵活,并易于扩展。 3、 遵守大部分GRASP原则和常用设计原则,高内聚、低偶合。
缺点:
1、 因为每个具体策略类都会产生一个新类,所以会增加系统需要维护的类的数量。