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

本文详细介绍策略设计模式的应用方法,包括创建策略接口、不同场景类及环境类等步骤,并通过具体实例展示如何在不同场景间进行策略切换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

策略设计模式
根据不同的场景执行不同的处理逻辑,每个场景有自己的类写符合这个场景的逻辑,然后统一通过环境类调用。
多个场景类,多一种场景就多一个场景类。
使用方法:
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();
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值