策略模式

策略模式

策略(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();
    }
}
相关推荐
Jason-河山几秒前
Java爬虫抓取数据的艺术
java·爬虫·python
百成Java5 分钟前
基于springboot的旅游网站
java·spring boot·后端·mysql·spring·智能家居·旅游
昭著14 分钟前
优先级队列(堆)
java·数据结构
cc77521022 分钟前
【常见框架漏洞】ThinkPHP、struts2、Spring、Shiro
java·struts·spring
野生派蒙29 分钟前
IDEA 关闭自动补全功能(最新版本)
java·开发语言·ide·后端·学习·intellij-idea
林小果130 分钟前
观察者模式
java·开发语言·观察者模式·设计模式
xplidelphi32 分钟前
Idea开发Gradle多模块项目踩坑纪实之一:Java模块无法执行
java·ide·intellij-idea
anyup_前端梦工厂36 分钟前
JS设计模式之组合模式:打造灵活高效的对象层次结构
javascript·设计模式·组合模式
为java添砖加瓦41 分钟前
【读写分离?聊聊Mysql多数据源实现读写分离的几种方案】
java·数据库·spring boot·后端·mysql·spring·mybatis
2401_857617621 小时前
Spring Boot技术:构建高效网上购物平台
java·spring boot·后端