设计模式(2) 策略模式--行为型

定义

策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法独立于使用算法的客户。

角色

环境类(Context):用一个ConcreteStrategy对象来配置。维护一个对Strategy对象的引用。可定义一个接口来让Strategy访问它的数据。
抽象策略类(Strategy):定义所有支持的算法的公共接口。 Context使用这个接口来调用某ConcreteStrategy定义的算法。
具体策略类(ConcreteStrategy):以Strategy接口实现某具体算法。

类图

这里写图片描述

示例

典型案例是一个人可以通过火车,自行车,飞机,汽车去旅行。一个接口多个实现。由客户端决定调用哪个实现。

public interface IVehicles {
    void transportWay();
}
public class VehiclesAirplane implements IVehicles {
    public void transportWay(){
        System.out.println("I travel use airplane.");
    }
}
public class VehiclesBike implements IVehicles {
    public void transportWay(){
        System.out.println("I travel use bike.");
    }
}
public class VehiclesCar implements IVehicles {
    public void transportWay(){
        System.out.println("I travel use car.");
    }
}
public class Context {
    public Context(){

    }
    private IVehicles vehicles;

    public Context(IVehicles vehicles){
        this.vehicles= vehicles;
    }

    public void way(){
        vehicles.transportWay();
    }
}
public class Client {
    public static void main(String[] args) {
        IVehicles vehicles = new VehiclesAirplane();
        Context context = new Context(vehicles);
        context.way();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值