美文网首页
状态模式

状态模式

作者: fanren | 来源:发表于2019-04-10 21:44 被阅读0次

    定义

    • 当一个对象的内在状态改变时,允许改变其行为;
      状态:类似于wifi状态;
      行为:音响手机数据的传输
    • 这个对象看起来是改变了类
      不同的状态,调用相同的功能,最终的效果不一样;

    应用场景

    • 一个对象的行为取决于他的状态,并且必须在运行时,根据状态改变它的行为
    • 程序代码中包含大量与对象状态有关的条件语句
      ps:状态模式将每一个条件分支放到一个独立的类中,这使得你可以根据对象自身的情况将对象的状态作为一个对象,这一对象可以不依赖于其他对象而独立变化,这样通过多态来去除过多的、重要复杂的if-else等分支语句;

    角色分析

    • 角色一:抽象状态:StateProtocol
    • 角色二:具体状态:ConcrateState
    • 角色三:状态管理器(上下文):Context

    案例

    • 以电视遥控器为例,分为两种状态:打开和关闭
      在两种状态下,切换频道和音量
      demo
    • 我们在实际开发中,也可以在运用在登录功能里,分为登录状态和未登录状态;

    相关文章

      网友评论

          本文标题:状态模式

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