当前位置: 首页 > news >正文

aap手机网站建设海南电商网站建设

aap手机网站建设,海南电商网站建设,域名和网站,网络项目平台状态模式(State),当一个对象的内部状态改变时允许改变其行为,这个对象看起来像是改变了其类。 能够让程序根据不同的外部情况来做出不同的响应,最直接的方法就是在程序中将这些 可能发生的外部情况全部考虑到&#xff…

状态模式(State),当一个对象的内部状态改变时允许改变其行为,这个对象看起来像是改变了其类。

  • 能够让程序根据不同的外部情况来做出不同的响应,最直接的方法就是在程序中将这些 可能发生的外部情况全部考虑到,使用if else 语句来进行代码响应选择。但是这种方法对于复杂一点的状态判断,就会显得杂乱无章,容易产生错误,而且增加一个新的状态将会带来大量的修改。

  • 这个时候“根据状态决定行为”的状态模式的引入也许是个不错的主意。状态模式可以有效的替换充满在程序中的 if else 语句:将不同条件下的行为封装在一个类里面,再给这些类一个统一的父类来约束他们

结构图:

        状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化

优点:

  • 好处是将与特定状态相关的行为局部化,并且将不同状态的行为分割开来。(每个状态类的职责单一明确,易于扩展)

  • 将特定的状态相关的行为都放入一个独立对象中,由于所有与状态相关的代码都存在于某个ConcreteState中,所以通过定义新的子类可以很容易地增加新的状态和转换。目的就是为了消除庞大的条件分支语句,大的分支判断会使得它们难以修改和扩展,就像最早说的刻板印刷一样,任何改动和变化都是致命的。

  • 状态模式通过把各种状态转移逻辑分布到State的子类之间,来减少相互间的依赖。

缺点:

  • 状态过多会引起类膨胀(事实上这也是大部分设计模式的通病)。

  • 状态模式的结构与实现相对较为复杂,容易造成代码混乱。

  • 对于支持状态切换的状态类违反了开闭原则,因为一旦状态修改或者中间要新增状态,则需要修改对应的源代码,否则会出现状态切换错误。

适用场景:

  • 当一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为时,就可以考虑使用状态模式了。

  • 另外如果业务需求某项业务有多个状态,通常都是一些枚举常量,状态的变化都是依靠大量的多分支判断语句来实现,此时应该考虑将每一种业务状态定义为一个State的子类。这样这些对象就可以不依赖于其他对象而独立变化了,某一天客户需要更改需求,增加或减少业务状态或改变状态流程,都不是困难的事。

状态模式和策略模式对比:

        状态模式和策略模式都能用来消除大量的if/else场景,但是也有本质区别:

  • 策略模式中各个策略之间是独立的,相互可以替换的,任意选择其中一个策略就能满足需求,而且是由客户端自己做出选择。而状态模式客户端只能选择初始节点,后续就会自动流转,各个状态是一个整体,不存在可以互相替换的状态。

  • 最根本的差异在于策略模式是在求解同一个问题的多种解法,这些不同解法之间毫无关联;状态模式则不同,状态模式要求各个状态之间有所关联,以便实现状态转移。

  • 区分这两个模式的关键是看行为是由状态驱动还是由一组算法驱动

 

http://www.yayakq.cn/news/536714/

相关文章:

  • 做公司网站注意什么wordpress 仪表盘
  • 火车票网站建设wordpress移动端顶部菜单
  • 响应式公司网站python编写简单网页
  • 济南网站建设培训班最新的网站建设软件
  • 深圳网站制作公司售后服务网站建设的本质
  • 辽宁省建设工程招投标协会网站如何说服别人做网站
  • 电子商务的网站建设名词解释网站开发去哪学
  • 排版网站推荐兰州网站建设招聘最新
  • 安徽建站之星出格做网站怎么样
  • 网站案例分析2021年有没有人给个网站
  • 网站被很多公司抄袭网站建设的成功之处有哪些
  • 做木材生意的外贸网站云免网站空间
  • 台州网站制作系统做公司网站开发的公司
  • 搜索引擎网站有哪些外贸网站用什么字体
  • 密云网站建设大冶市规划建设局网站
  • 做网站的细节商业网站页面
  • wordpress页面添加苏州网络seo
  • 海外购物网站大全什么是网络营销定义
  • 珠海网站制作百度怎么在视频下方投放广告
  • 如何做简易个人网站网站服务器安装教程视频
  • 聊城网站建设设计实力公司代写平台
  • 安平谁做网站好导航网站cms
  • wordpress表格不显示36优化大师下载安装
  • 网站图片居中代码茌平做网站公司
  • dedecms网站tag标签静态化建设举报网站
  • 做外贸的社交网站求职网站建设
  • 东莞气缸东莞网站建设北京网站制作服务
  • 网站界面要素wordpress前台写文章
  • 南京网站建设推南京网站建设设计wordpress添加说说功能
  • 南通企业建站模板2023年10月爆发新冠