状态模式 状态模式允许一个对象在其内部状态发送改变时,改变其行为,看上去就像是改变了他的类一样。 状态模式要求我们把对象的行为放到对象不同的状态中。随着状态的改变对象的行为也随之发生改变。另外重要的一点是,我们研究的对象要持有所有的状态,在状态类中是通过对象来改变其自身的状态的。状态模式的示意图状态模式包含的角色环境角色:持有所有自身所有的状态。而且,该类中也定义了当前对象转换状态的操作。也就是通
最近学习到设计模式,现总结个人学习状态模式内容【重点在于根据它的状态改变而改变它的相关行为】。 文章目录定义优缺点优点缺点实现代码测试 定义对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。优缺点优点允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。状态模式将与特定状态相关的行为局部化到一个状态中,并且将不同状态的行为分
背景:        介绍状态模式前,我们先看这样一个实例:公司力排万难终于获得某个酒店的系统开发项目,并且最终落到了你的头上。下图是他们系统的主要工作:        当第一眼看到这个系统时你就看出这是一个状态图,每个框都代表了房间的状态
## Java状态模式使用实例 状态模式是一种对象行为型模式,它主要解决对象在不同状态下有不同的行为问题。在状态模式中,通过将对象的状态封装成独立的类,使得对象在不同状态下有不同的行为,从而避免了使用大量的条件语句。在Java中,状态模式是一种非常常用的设计模式。 ### 状态模式的结构 状态模式包含3个角色,分别是: - Context(上下文类):维护一个ConcreteState子类
原创 2024-05-29 06:12:28
24阅读
状态模式(State Pattern)是设计模式的一种,属于行为模式。  定义(源于Design Pattern):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。   状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。   意图:允许一个对象在其内部状态改变时改
状态模式:允许对象在内部改变时改变它的行为,对象看起来好像修改了它的类。将状态封装成为对立的类,并将动作委托给当前状态的对象。对象在运行过程中,会完全改变他的行为,好像另一个对象一样。案例情景:ATM机在我们的生活中随处可见,我们只需插入银行卡,输入密码,输入取款金额,取走现金。就ok了,方便了我们的生活。我们现在就来模拟这个过程,最后“拿钱走我” 1、State.java1. publ
在阎宏博士的《JAVA模式》一书中开头是这样描述状态(State)模式的:  状态模式,又称状态对象模式(Pattern of Objects for States),状态模式是对象的行为模式。  状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。状态模式的结构  用一句话来表述,状态模式把所研究的对象的行为包装在不同的状态对象里,每一个状态对象都属于一
状态模式(State Pattern),当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。当一个对象行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为时,就可以考虑使用状态模式了。
状态模式定义,允许对象在自己内部状态改变时改变它的行为,对象看起来就像是修改了它的类。该描述第一部分意思是,这个模式状态封装进了一个独立的类,并将动作委托到对象的当前状态状态对象。第二个部分意思就是,让客户感觉使用了对象能够改变它的行为,但是实际上这种设计模式 使用组合通过简单引用不同状态对象来造成类的改变假象。状态模式封装了一组行为。状态模式类图Context:是一个上下文类,可以拥有一些内
原创 2013-04-14 15:14:05
1221阅读
1点赞
1评论
Java设计模式状态设计模式
原创 2013-12-01 23:37:17
865阅读
状态模式 水、固态、气态、液态 账户、正常状态、透支状态、受限状态 状态模式中,用一个状态类来分散冗长的条件语句,让系统有灵活性和可扩展性 状态模式用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题 角色 环境类Context 拥有多种状态的对象 抽象状态类State 定义一个接口来封装与
原创 2021-08-05 15:41:05
173阅读
状态模式的主要组成部分如下:上下文(Context):上下文通常包含一个具体状态的引用,用于维护当前状态。上下文委托给当前状态对象处理状态相关行为。抽象状态(State):定义一个接口,用于封装与上下文的特定状态相关的行为。具体状态(Concrete State):实现抽象状态接口,为具体状态定义行为。每个具体状态类对应一个状态。假设我们要模拟一个简易的电视遥控器,具有开启、关闭和调整音量的功能。
原创 2023-08-30 19:53:29
158阅读
状态模式 1、状态模式是对象的行为模式状态模式允许一个对象在内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。 一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫做状态,这样的对象叫做有状态的对象。 2、状态模式把所研究的对象的行为包装在不同的状态对象里,每一个状态对象都属于一个抽象状态的子类。 状态模式的意图是让一个对象在内部状态改变的时候,其行为也随着改变。
状态模式(State Pattern),当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。当一个对象行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为时,就可以考虑使用状态模式了。
本文继续介绍23种设计模式系列策略模式。 何时使用 State模式在实际使用中比较多,适合“状态”的切换。因为我们经常会使用If else if else 进行状态切换,如果针对状态的这样判断切换反复出现,我们就要联想到是否可以采取State模式了。 这里要阐述的是"开关切换状态" 和" 一般的状
转载 2017-04-28 14:45:00
87阅读
2评论
state模式将每一个条件分支放入到一个独立的类中,这使得你可以根据自身的情况将对象的状态作为一个对象,这一对象可以不依赖于其他对象而独立变化。2、状态模式不同状态下做的事情不同,而策略模式做的都是同一件事,例如聚合支付平台,有支付宝、微信支付、银联支付,虽然策略不同,但最终做
原创 2023-04-16 21:23:15
324阅读
1评论
状态模式,又称状态对象模式(Pattern of Objects for States),状态模式是对象的行为模式状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。 状态模式的结构 用一句话来表述,状态模式把所研究的对象的行为包装在不同的状态对象里,每一
转载 2017-08-04 22:11:00
35阅读
2评论
当系统中某个对象存在多个状态,这些状态之间可以进行转换,而且对象在不同状态下行为不相同时可以使用状态模式状态模式将一个对象的状态从该对象中分离出来,封装到专门的状态类中,使得对象状态可以灵活变化。状态模式是一种对象行为型模式
转载 2023-07-25 22:08:24
0阅读
定义:允许对象在内部状态改变时改变它的行为,对象看起来就好像修改了它的类简单来说就是将状态的行为封装到各个状态类内部,在内部状态改变时,通过委托不同的状态类改变对象的行为,从外部看起来就像是重新初始化了一个类下面举一个例子来看之前看过一个html解析的处理,核心处理过程如下switch(state) {//we are in an unknown state before there's actu
状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。我们程序猿在码代码的时候由于不同的工作状态,可能写出质量不一的代码,并我们不是AI嘛。早上上班的时候,休息了一夜,精力旺盛,程序猿能够高效码代码,bug也不多;当熬夜加班的时候,运转了一天的大脑无比疲惫,写出的代码常有bug出没;当然,我们也都非常期待在码代码的时候能够达到“天人合一”境界(
  • 1
  • 2
  • 3
  • 4
  • 5