策略模式

策略模式

策略(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();
    }
}
相关推荐
毕设源码-邱学长14 小时前
【开题答辩全过程】以 基于Java的学校住宿管理系统的设计与实现为例,包含答辩的问题和答案
java·开发语言
兑生16 小时前
【灵神题单·贪心】1481. 不同整数的最少数目 | 频率排序贪心 | Java
java·开发语言
daidaidaiyu16 小时前
一文学习 Spring 声明式事务源码全流程总结
java·spring
零雲17 小时前
java面试:了解抽象类与接口么?讲一讲它们的区别
java·开发语言·面试
Oueii18 小时前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
爱丽_18 小时前
JVM 类加载机制:双亲委派模型、打破场景与排查思路
jvm
2401_8318249618 小时前
使用Fabric自动化你的部署流程
jvm·数据库·python
njidf19 小时前
Python日志记录(Logging)最佳实践
jvm·数据库·python
2401_8512729919 小时前
实战:用Python分析某电商销售数据
jvm·数据库·python
2401_8579182919 小时前
用Python和Twilio构建短信通知系统
jvm·数据库·python