策略模式的概念:
定义一系列算法,并且独立封装起来,这些算法之间可以相互替换。策略模式主要是管理一堆共性的算法,客户端按照其需求,迅速切换这些算法,并保持可扩展性。
策略模式的本质:分离算法,选择实现。
策略模式实现:
学习设计模式,最好的方法是先理解设计模式概念,然后熟悉一些模式实现的例子。策略模式实现起来,主要需要三个部分:抽象接口、实现算法、上下文。
我们可以针对不同情况修改上下文对象和具体的算法实现。比如可以增加一个抽象类实现作为算法模版。抽象类里面我们可以封装一些公共的方法。这样实现具体的算法的时候,每个算法公共部分就被分离出来。
策略模式的目的是把具体的算法抽离出来,把每个算法独立出来。形成一系列有共同作用的算法组,然后这个算法组里面的算法可以根据实际情况进行相互替换。
策略模式的中心不是如何实现这些算法,而是如何组织和调用这些算法。也就是把我们平时写到一块的算法解耦出来,独立成一个模块,增强程序的扩展性。
策略模式里面的算法通常nag需要数据执行,我们可以根据实际情况把数据放在不同的地方。例如,可以放在上下文类里面,然后每个算法都可以使用这些数据。或者对接口封装一个抽象类,在抽象类里添加数据。这些可以根据实际的情况综合考虑。设计模式里面没有一成不变的万能模式,每种模式都有变化版本,需要根据实际的项目进行变通。