策略模式

策略模式

策略(Strategy)模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。属于对象行为模式。

案例

一个团队可以使用不同的游戏策略:

java 复制代码
public interface Stategy {
    void gameStategy();
}
java 复制代码
public class Stategy01 implements Stategy{
    @Override
    public void gameStategy() {
        System.out.println("正在使用策略1");
    }
}
java 复制代码
public class Stategy02 implements Stategy {
    @Override
    public void gameStategy() {
        System.out.println("正在使用策略2");
    }
}
java 复制代码
public class Team {
    private Stategy stategy;

    public void setStategy(Stategy stategy){
        this.stategy = stategy;
    }

    public void startStategy(){
        System.out.println("游戏开始");
        stategy.gameStategy();
    }
}

测试:

java 复制代码
public class Main {
    public static void main(String[] args) {
        Team team = new Team();
        team.setStategy(new Stategy01());

        team.startStategy();
    }
}
相关推荐
paopaokaka_luck17 分钟前
基于springboot3+vue3的文山民族文化资源展示与推广平台(协同过滤算法、Echarts 图形化分析)
java·前端·spring boot·学习·echarts
eralong24 分钟前
Java IO 与 NIO
java·后端
Jesse_EC38 分钟前
我给消息推送加了 Publisher Confirm,然后亲手引入了一个竞态
java
S3rein38 分钟前
JAVA多线程手撕
java·多线程
用户81818706274641 分钟前
第7章 死锁排查实录:jstack定位死锁的完整流程
java·后端
喵同志不止步于码农1 小时前
Java Caffeine 快速入门
java·开发语言·后端·并发·缓存一致性
Java成神之路-1 小时前
Java 并发灵魂拷问:notify/signal 唤醒顺序是规范还是实现?
java
Java牛马1 小时前
Caffeine 缓存及其应用相关总结
java·redis·缓存·caffeine·数据一致性·本地缓存
一只叫煤球的猫2 小时前
Spring AI 2.0 源码解析(三):ChatClient 的 Fluent API 如何构建请求?
java·后端·面试
软件开发JR2 小时前
基于Web的足球青训俱乐部管理后台系统的设计与开发
java·前端·spring boot·毕业设计