首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【地铁上的设计模式】--行为型模式:状态模式

    状态模式是一种行为模式,它允许对象在其内部状态发生改变时改变其行为。在状态模式中,将状态定义为独立的对象,并将对象在不同状态下的行为委托给具有相应行为的状态对象。当对象的状态发生变化时,它将使用不同的状态对象来执行不同的操作,从而使其行为随着状态的改变而改变。 状态模式可以帮助我们更好地管理复杂的状态和转换,从而使代码更加清晰和易于维护。它还能够使我们更加灵活地添加和删除状态,而不会对其他部分产生影响。但是,状态模式也有一些缺点。首先,它可能导致类的数量增加,从而使代码变得复杂。此外,在状态转换比较复杂的情况下,实现起来可能会比较困难。因此,在使用状态模式时需要权衡利弊,根据具体情况进行选择。

    02

    设计模式 ☞ 行为型之状态模式

    状态(State)模式的定义:对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。在软件开发过程中,应用程序中的部分对象可能会根据不同的情况做出不同的行为,我们把这种对象称为有状态的对象,而把影响对象行为的一个或多个动态变化的属性称为状态。当有状态的对象与外部事件产生互动时,其内部状态就会发生改变,从而使其行为也发生改变。如人都有高兴和伤心的时候,不同的情绪有不同的行为,当然外界也会影响其情绪变化。   状态模式的解决思想是:当控制一个对象状态转换的条件表达式过于复杂时,把相关“判断逻辑”提取出来,用各个不同的类进行表示,系统处于哪种情况,直接使用相应的状态类对象进行处理,这样能把原来复杂的逻辑判断简单化,消除了 if-else、switch-case 等冗余语句,代码更有层次性,并且具备良好的扩展力。

    02

    设计模式(十二):通过ATM取款机来认识“状态模式”(State Pattern)

    说到状态模式,如果你看过之前发布的重构系列的文章中的《代码重构(六):代码重构完整案例》这篇博客的话,那么你应该对“状态模式”并不陌生,因为我们之前使用到了状态模式进行重构。上一篇博客我们讲的主题是“组合模式”,我们使用组合模式创建了一个树形结构,并给出了遍历方式。今天我们来认识一下另一种模式,那就是“状态模式”,今天就从银行的ATM自动取款机中的取款流程来学习一下状态模式。 还是老规矩,开门见山。下方是状态模式的定义: 状态模式:允许对象在内部状态改变时改变它的行为,对象看起来好像修够了它的类。 其实状

    08

    在王者荣耀角度下分析面向对象程序设计B中23种设计模式之状态模式

    应用一: 王者荣耀s19赛季新英雄镜被策划称作史上最难的最花里胡哨的英雄,在她上线后,玩家们也纷纷投身于体验镜这一英雄的热潮中。那么对于王者荣耀新英雄镜技能,研究起来也是别有一番风趣的。简单来说,镜通过一技能——开锋,可以快速向前突进,当触碰到野怪、小兵、敌人时,可突进两段,相反则突进一段;通过二技能——裂空,触碰到野怪小兵等会恢复血量,触碰到的越多、装备越好,回血能力越强,同一技能,若未触碰到目标则不产生回血效果。因此,镜的一二技能触发的技能效果状态是随是否触碰到目标而改变的。

    00

    在王者荣耀角度下分析面向对象程序设计B中23种设计模式之状态模式

    应用一: 王者荣耀s19赛季新英雄镜被策划称作史上最难的最花里胡哨的英雄,在她上线后,玩家们也纷纷投身于体验镜这一英雄的热潮中。那么对于王者荣耀新英雄镜技能,研究起来也是别有一番风趣的。简单来说,镜通过一技能——开锋,可以快速向前突进,当触碰到野怪、小兵、敌人时,可突进两段,相反则突进一段;通过二技能——裂空,触碰到野怪小兵等会恢复血量,触碰到的越多、装备越好,回血能力越强,同一技能,若未触碰到目标则不产生回血效果。因此,镜的一二技能触发的技能效果状态是随是否触碰到目标而改变的。

    02
    领券