当针对同一场景在不同条件下有不同解决方案的时候,就可以使用策略模式。
比如双十二大促的时候,商品优惠打折的算法和平时的算法不同,我们就可以使用策略模式,根据不同的使用条件使用不同的算法策略;
再比如物体识别的AI算法,当检测判断出是活物时,调用活物的具体判断算法,当判断出是物体时,调用具体物体的判断算法。
策略模式就是把多种算法和调用算法的逻辑封装起来,使调用算法和算法本身耦合度降低,便于扩展。
策略模式组成:
- 抽象策略类
- 具体策略类
- 环境类
上代码:
//抽象策略类
public interface IAI{
public void identify();
}
//具体策略类-1
public class Substance implements IAI{
@Override
public void identify() {
System.out.println("----------进入物品检测模块-----------");
System.out.println("识别算法检测出物品为:杯子")