策略模式是一种行为设计模式。它将一个或一组行为抽象为对象,并使其在上线文内部能够相互转换。
策略模式的应用场景就是:对于相同的行为有不同的行为方式的时候,可以对相同行为使用策略模式,不同的行为方式就是具体实现策略。
类图:
策略模式的使用方法:
1、定义一个通用的策略接口,将通用的行为方法定义到接口中。
2、创建不同行为方式的类,实现策略接口并实现行为方法。
3、在上下文类中(一般是service类)中定义策略接口引用,然后引用执行行为方法即可。然后我们就可以根据业务的不同参数,将接口引用实例为不同的行为方式类的对象。这样子在实际运行中,实例化不同的类,就会走各自实现的策略行为方法。
换句话说,什么情况下用策略模式呢,就是如果代码中需要用if做判断的,并且if的可能性有多种,而且后续还可能会有其他种可能的,就可以使用策略模式。