zoukankan      html  css  js  c++  java
  • 状态模式

    1、状态模式:当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类。
    2、解决的问题:当控制一个对象状态转换的条件表达式过于复杂时,把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的逻辑简化。将与特定状态相关的行为局部化,并且将不同状态的行为分割开来。
    3、优点:(1)、将特定的状态相关的行为都放入一个对象中,由于所有与状态相关的代码都放在状态类对象中,所以通过定义行的子类可以很容易得增加新的状态和转换。(2)、消除了庞大的添加分支语句,大的风之判断会使得他们难以修改和扩展。状态模式通过各种状态转移逻辑分布到子类之间,减少了相互之间的依赖。
    4、适用场合:当一个对象的行为取决于它的状态,并且它必须在运行中,时刻根据自己的状态改变它的行为时,就可以考虑使用状态模式。
    5、组成:
    (1)、上下文环境:它定义了客户程序需要的几口并维护一个具体状态角色的实例,将与状态相关的操作委托给当前状态的对象来处理。
    (2)、抽象状态类:定义一个接口封装使用上下文环境的特定状态相关行为。
    (3)、具体状态类:实习抽象状态定义的接口。
  • 相关阅读:
    「2019.7.25 考试」偶然发生
    「刷题」可怜与STS
    「刷题」小星星
    「刷题」数三角形
    「刷题」 关于线段上的整点个数
    「刷题」Color 群论
    「2019.7.22 考试」AC和WA0一步之遥
    「刷题」幸运数字
    「刷题」卡特兰数&prufer序列
    「刷题」一个人的数论
  • 原文地址:https://www.cnblogs.com/zxtp/p/4960469.html
Copyright © 2011-2022 走看看