首页 > 其他分享 >11.3

11.3

时间:2024-11-20 10:22:19浏览次数:1  
标签:状态 void TrafficLightState 11.3 state context public

状态模式

当涉及状态模式的示例时,我们可以以一个简单的交通信号灯系统为例。在这个示例中,我们有三种状态:红灯、绿灯和黄灯。根据当前状态的不同,交通信号灯将采取不同的行为。

首先,我们需要定义一个状态接口,表示交通信号灯的状态:

// 状态接口
public interface TrafficLightState {
    void display();
}

然后,我们可以实现具体的状态类,例如红灯状态、绿灯状态和黄灯状态:

// 红灯状态
public class RedLightState implements TrafficLightState {
    @Override
    public void display() {
        System.out.println("红灯停");
    }
}

// 绿灯状态
public class GreenLightState implements TrafficLightState {
    @Override
    public void display() {
        System.out.println("绿灯行");
    }
}

// 黄灯状态
public class YellowLightState implements TrafficLightState {
    @Override
    public void display() {
        System.out.println("黄灯等待");
    }
}

接下来,我们需要一个上下文类来维护当前的状态,并根据状态的变化调用相应的行为:

// 交通信号灯上下文类
public class TrafficLightContext {
    private TrafficLightState state;

    public TrafficLightContext() {
        // 初始状态为红灯
        state = new RedLightState();
    }

    public void setState(TrafficLightState state) {
        this.state = state;
    }

    public void displayState() {
        state.display();
    }
}

最后,我们可以创建一个简单的示例来演示状态模式的使用:

public class Main {
    public static void main(String[] args) {
        TrafficLightContext context = new TrafficLightContext();

        context.displayState(); // 当前状态为红灯

        context.setState(new GreenLightState());
        context.displayState(); // 当前状态为绿灯

        context.setState(new YellowLightState());
        context.displayState(); // 当前状态为黄灯
    }
}

标签:状态,void,TrafficLightState,11.3,state,context,public
From: https://www.cnblogs.com/luoqingci/p/18556284

相关文章

  • AIGC时代算法工程师的面试秘籍(第二十五式2024.10.21-11.3) |【三年面试五年模拟】
    写在前面【三年面试五年模拟】旨在整理&挖掘AI算法工程师在实习/校招/社招时所需的干货知识点与面试经验,力求让读者在获得心仪offer的同时,增强技术基本面。欢迎大家关注Rocky的公众号:WeThinkIn欢迎大家关注Rocky的知乎:RockyDingAIGC算法工程师面试面经秘籍分享:WeThi......
  • 11.3
    一.单选题(共1题,16.6分)(单选题)以下不属于GUI界面的是()A.触控、手势、语音B.显示器C.命令行D.鼠标键盘我的答案:B:显示器;正确答案:B:显示器;16.6分二.填空题(共5题,83.4分)(填空题)Swing中()类用于表示标签;()类用于表示单选按钮;()类用于表示复选框;()类用于表示按钮;()类......
  • 上周热点回顾(10.28-11.3)
    热点随笔:· C#13(.Net9)中的新特性-半自动属性 (Rwing)· 赠送天翼云电脑,解决一点园子的商业化烦恼 (博客园团队)· 全中国有多少公网IP地址? (轩辕之风)· 6年30kstar,这个明星项目停止更新! (程序员鱼皮)· .NET8.0开源在线考试系统(支持移动端) (小码编匠)· ......
  • 11.3 小计
    渐渐被你吸引好听。P10764上午花了大约1.5h完全理解并实现。出门左转看解析。计数。容斥。AT_arc074_c同样是补的模拟赛题。dp优化。P11233现在终于来补正解了。操作只有全局加,单点改和单点查,全局max,好像可以线性做。但是我还是打了一个线段树。0.6s稳过的。中途暴......
  • 10.28 ~ 11.3 总结
    联考联考打得不怎么样,一个原因是有两场T3T4全放DS,可能适合叫练习赛,但是顶个模拟赛的名字就有点有点了。但是省选联考本来认为擅长的T1这样的题目也没有做出来。题解还是在这里https://www.cnblogs.com/british-union/p/liankao.html。做题ARC155D对于博弈论的题目目前......
  • 2024.11.3 test
    BP6563[SBCOI2020]一直在你身旁,\(n\le10^5\),\(c_i\le9\)。考虑利用\(c_i\le9\)的性质,那么最后答案很小。我们原本是计算每个区间的答案,同时区间答案具有单调性,那么考虑把答案放进状态里即可。即维护\(f_{l,ans}\)表示花费\(ans\)的代价能确定的最远的\(r\)。C请......
  • 2024.11.3 鲜花
    浅谈RMQ비밀인형극II어느한적한마을골목안의허름한건물在某个僻静村庄胡同的破旧建筑里문을열고들어가면작은극장이있죠开门进去便会见到一个小剧场솜씨좋은인형사가연극을마치고떠나면一个手艺不错的人偶师演完戏离开的时候인형들은......
  • 11.3 学习日志
    今天把tomcat插件弄好了找到了idea一直连接不上我的数据库的原因然后复习了一下隐式转换和强制转换packagetxt;publicclasstest{publicstaticvoidmain(String[]args){inta=2;doubleb=6.9;c=a+b;}}c为double类型;小向大转换;byteshortchar在运算时都会先变......
  • 深度学习周报(10.28-11.3)
    目录摘要Abstract1卷积神经网络(ConvolutionaNeuralNetwork,CNN)1.1什么是卷积神经网络1.2感受野(ReceptiveField)1.3参数共享(ParameterSharing)1.4卷积层(ConvolutionalLayer)1.5 池化(Pooling)1.6 CNN整体流程2CNN实例——手写数字识别2.1 数据集......
  • [超级硬件混响插件]TEGELER Audio Manufaktur RaumMaschine v1.1.8 [MacOSX, WiN](45.9
    Tegeler推出了一款混响效果器:Raummaschine,结合了高质量的DSP引擎和模拟管路,提供出色的声音和灵活性。Raummaschine是基于其硬件设计而创造的。这款独特的混响单元结合了高质量的DSP引擎、模拟管路和每个通道上的两个双三极管,以及输入和输出变压器。通过模拟硬件版本的每个方面......