美文网首页
设计模式之状态模式

设计模式之状态模式

作者: smallstrong | 来源:发表于2017-05-11 15:31 被阅读30次

状态模式

状态模式UML.png
interface TransformersState{
    void skill();//变形金刚不同状态下有不同技能
}

汽车人接口

class CarTransformersState implements TransformersState{
    public void skill(){
        // 汽车状态,技能就是压马路吧
    }
}

变形金刚的汽车型状态

class FightingTransformersState implements TransformersState{
    public void skill(){
        // 战斗状态,技能反正不是压马路,就假设为射击技能吧
    }
}

变形金刚的战斗型状态

class Context{
    TransformersState mTransformersState;
    public void setState(TransformersState mTransformersState){
    this.mTransformersState = mTransformersState;
    }
    public void skill(){
        mTransformersState.skill();
    }
}

用来管理切换状态的类

class Client{
    public static void main(String[] args){
        Context context = new Context();
        context.setState(new FightingTransformersState());//切到战斗模式
        context.skill();//战斗状态下的技能
        context.setState(new CarTransformersState());//切到跑车模式
        context.skill();//跑车状态下的技能
    }
}   

客户端

状态模式的场景一个对象的具体行为取决于这个对象内部的状态,这些状态可以被抽象出来单独为类。这种模式一定程度上会解决if-else多层判断的问题。状态及某种状态的具体实现可以被抽出去成类,层次会比较清晰,不过类会增多

相关文章

  • Java设计模式——状态模式

    Java设计模式之状态模式 这期分享一个行为模式中的状态模式,状态模式是行为模式中的最后几个模式了。希望多多关注交...

  • 设计模式之状态设计模式

    一、浩言 人静而后安,安而能后定,定而能后慧,慧而能后悟,悟而能后得。 二、背景 开年,看了看最近网上传的《阿里巴...

  • 设计模式-状态模式

    设计模式-状态模式 设计模式 状态模式的关键是区分事物内部的状态

  • 设计模式之状态模式

    状态模式 State Intro 状态模式(State),当一个对象的内在状态改变时允许改变其行为,这个对象看起来...

  • 设计模式之状态模式

    1. 定义 允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。它是一种对象行为型模式。 2....

  • 设计模式之状态模式

    状态模式的定义 状态模式的定义如下:Allow an object to alter its behavior w...

  • 设计模式之状态模式

    在开发过程中,我们经常会遇到很多if-else的判断,有的会有很多层,当然也不是说所有的涉及到if-else判断的...

  • 设计模式之状态模式

    UML图: 没怎么完全理解,略过。

  • 设计模式之状态模式

    状态模式 汽车人接口 变形金刚的汽车型状态 变形金刚的战斗型状态 用来管理切换状态的类 客户端 状态模式的场景一个...

  • 设计模式之状态模式

    写在前面 最近写屏幕式智能家电的时候,总是需要处理各种电器状态,比如电源开启的情况下才可以进行开风机操作,风力档位...

网友评论

      本文标题:设计模式之状态模式

      本文链接:https://www.haomeiwen.com/subject/hbbotxtx.html