菜菜理解的——策略设计模式

策略设计模式
根据不同的场景执行不同的处理逻辑,每个场景有自己的类写符合这个场景的逻辑,然后统一通过环境类调用。
多个场景类,多一种场景就多一个场景类。
使用方法:
1、创建抽象策略类并创建抽象策略接口,或创建策略接口类创建策略接口。
2、创建不同场景类,继承抽象策略类或实现策略接口类,重写抽象策略接口或策略接口,写该场景的逻辑代码。
3、创建环境类,引入抽象策略类或策略接口类,创建策略类的构造函数,get、set方法,简单调用策略类的接口。
4、实际场景时,创建环境类的对象,传入场景类对象,并调用环境类中简单封装策略类的接口。

以下代码复制于:https://www.cnblogs.com/porotin/p/7788675.html

1、创建策略接口类
public interface Weapon {
public void gun();
}
2、创建不同场景类实现策略接口类
//场景1:
public class FirstGun implements Weapon {
@Override
public void gun() {
System.out.println(“使用AWM狙击步枪。”);
}
}
//场景2:
public class SecondGun implements Weapon {
@Override
public void gun() {
System.out.println(“使用S12K。”);
}
}
3、创建环境类,引入策略类,生成get、set、构造函数方法,简单封装策略接口
public class Context {
Weapon weapon; //策略类
public Context(Weapon weapon) { //构造函数
super();
this.weapon = weapon;
}
public Weapon getWeapon() { //get方法
return weapon;
}
public void setWeapon(Weapon weapon) { //set方法
this.weapon = weapon;
}
public void gun() { // 简单调用策略类接口
weapon.gun();
}
}
4、实际场景,调用环境类
public class StrategyClient {
public static void main(String[] args) {
//使用构造函数默认选择一把AWM狙击步枪(一个策略)
Context context=new Context(new FirstGun());
context.gun();
//使用get、set方法切换到S12K(切换策略)
  System.out.println("------右前方30米发现敌人------");
contex.set(new SecondGun());
context.gun();
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值