策略模式的精要之处就是类的组合,与类的继承不同,它将类的不同功能各自用不同的类来实现,而不是方法,这些功能都有一个特点,就是需要经常更改,易变的功能用一个抽象基类或接口来表示,然后把功能的每个不同的算法实现拓展成它的子类。
这样做的最大好处就是可以实现功能的动态改变,将功能的添加用其他方法实现,极大地提高了代码的灵活性。
而且一个事物对象本来就是由不同的部分组成的,用继承很难很好的实现事物之间的差异性,
所以,事物的主要关系用继承实现,差异比较大的功能模块用类的组合来实现,可以更好的反应事物之间的联系与区别。