设计模式---->策略模式

策略模式

定义

当处理一个业务时,有多种处理方式,并且需要在运行时决定使用那一种具体实现时,可以使用策略模式。

定义一组算法,将每个算法都封装起来,并且使他们之间可以互相切换。

个人理解:
策略模式将接口对象作为参数,通过接口对象调用接口实现类方法,
根据传入的接口实现类参数,实现对应的策略方法。
使用较少,一旦策略类过多反而不好。

优缺点

优点

可自由切换方法,避免多种条件判断,扩展性好

缺点

策略类数量会增多,每个策略都是一个类,复用性小

案例:

场景1:支付(支付宝支付,信用卡支付,微信支付)

场景2:出行(自行车,电动车,机动车)

代码

1,接口工具

public interface VehicleInter {
    void goOutByTool();
}

2,接口工具实现类

public class Car implements VehicleInter {
    @Override
    public void goOutByTool() {
        System.out.println("开汽车出行");
    }
}
public class Bicycle implements VehicleInter {
    @Override
    public void goOutByTool() {
        System.out.println("骑自行车出行");
    }
}
public class Electric implements VehicleInter {
    @Override
    public void goOutByTool() {
        System.out.println("骑电动车出行");
    }
}

3,工具策略类

public class VehicleService {
	//工具接口类为参数,调用接口方法
    public void goOutByVehicle(VehicleInter vehicle){
        vehicle.goOutByTool();//子类实现该方法
    }
}

4,测试

public class VehicleTest {
    public static void main(String[] args) {
        VehicleService vehicleInter = new VehicleService();
        vehicleInter.goOutByVehicle(new Car());

        vehicleInter.goOutByVehicle(new Bicycle());

        vehicleInter.goOutByVehicle(new Electric());
    }
}
//输出
开汽车出行
骑自行车出行
骑电动车出行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值