一,概述
状态模式:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。
状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。
意图:允许一个对象在其内部状态改变时改变它的行为
适用场景:
1.一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。
2.一个操作中含有庞大的多分支结构,并且这些分支决定于对象的状态。
二,示例
题目:根据不同时间段,显示不同时间段的精神状态
1)面向过程版本
2)工作状态分类版本
缺点:WriteProgram 中有太多的判断,如果更改时间段可能要改好几个,而且改错的风险极大
3)状态模式
主要解决的问题:当控制一个对象状态转移的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中。可以把复杂的逻辑简化。
优点:将与特定状态相关的行为局部化,并且将不同状态的行为分割开来。
消除庞大的条件分支语句。
三,状态模式模板
分享到:
相关推荐
状态模式是一种行为设计模式,它允许对象在内部状态改变时改变其行为,对象看起来似乎修改了它的类。在这个示例中,我们关注的是如何使用Java实现一个审批流程,特别是涉及二级审批的场景。这个压缩包文件包含了一个...
状态模式是一种行为设计模式,它使你能在运行时改变对象的行为。在状态模式中,一个对象的状态变化会导致其行为的变化。这种模式常用于处理具有多种状态的对象,且不同状态下对象的行为差异较大。通过将每种状态封装...
JAVA-设计模式-行为型模式-状态模式
c++设计模式-行为型模式-状态模式;qt工程;c++简单源码; 状态(State)模式的定义:对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。
在软件开发领域,设计模式是经过时间和实践验证的解决方案模板,用于解决常见编程问题。C#作为.NET框架的主要编程语言,拥有丰富的设计模式支持。这个压缩包中的代码示例为学习和理解C#设计模式提供了宝贵的资源。...
运用到的设计模式有备忘录模式,迭代器模式,简单工厂模式,状态模式,模版方法模式,单例模式。 资源包含项目文件(eclipse)以及系统说明(docx文件),系统说明中说明了为什么要使用该模式,使用该模式有什么好处...
在本设计模式课程设计中,我们重点探讨了五个核心的设计模式:原型模式、单例模式、抽象工厂模式、代理模式和建造者模式。这些模式在Java编程中具有广泛的应用,能够帮助开发者创建更加灵活、可扩展和易于维护的代码...
------ 设计模式之:迷你手册 ------(图较多,请多些耐心)
在编程领域,设计模式是一种被广泛接受的解决常见问题的最佳实践。它们是经过时间验证的、可重用的解决方案,可以提升代码的可读性、可维护性和扩展性。Go语言,作为一门现代化的编程语言,同样可以从设计模式中受益...
c++设计模式-行为型模式-策略模式;qt工程;c++简单源码; 策略(Strategy)模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于...
如果要开发一个好的网站或网络应用,就必需了解经典的软件开发所遵循的MVC 设计模式。本篇详细总结软件开发所遵循的MVC (Model-View-Controller, 模型-视图-控制器) 设计模式以及Django的MVT设计模式(Model-View-...
JAVA-设计模式-创建型模式-单例模式
JAVA-设计模式-结构型模式-代理模式
JAVA-设计模式-行为型模式-命令模式
JAVA-设计模式-结构型模式-适配器模式
JAVA-设计模式-结构型模式-桥接模式
JAVA-设计模式-结构型模式-组合模式
JAVA-设计模式-行为型模式-策略模式
JAVA-设计模式-结构型模式-装饰模式
JAVA-设计模式-创建型模式-工厂模式