- 浏览: 188321 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (321)
- eclipse (4)
- idea (2)
- Html (8)
- Css (14)
- Javascript (8)
- Jquery (6)
- Ajax Json (4)
- Bootstrap (0)
- EasyUI (0)
- Layui (0)
- 数据结构 (0)
- Java (46)
- DesPattern (24)
- Algorithm (2)
- Jdbc (8)
- Jsp servlet (13)
- Struts2 (17)
- Hibernate (11)
- Spring (5)
- S2SH (1)
- SpringMVC (4)
- SpringBoot (11)
- WebService CXF (4)
- Poi (2)
- JFreeChart (0)
- Shiro (6)
- Lucene (5)
- ElasticSearch (0)
- JMS ActiveMQ (3)
- HttpClient (5)
- Activiti (0)
- SpringCloud (11)
- Dubbo (6)
- Docker (0)
- MySQL (27)
- Oracle (18)
- Redis (5)
- Mybatis (11)
- SSM (1)
- CentOS (10)
- Ant (2)
- Maven (4)
- Log4j (7)
- XML (5)
最新评论
3. 行为型模式 (8) 状态模式
1. 状态模式
状态模式(State Pattern)中,类的行为是基于它的状态改变的。 在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。
1. 状态模式
package com.andrew.pattern0308.state.model01; public interface State { public void doAction(Context context); }
package com.andrew.pattern0308.state.model01; public class StartState implements State { @Override public void doAction(Context context) { System.out.println("Player is in start state"); context.setState(this); } public String toString() { return "Start State"; } } package com.andrew.pattern0308.state.model01; public class StopState implements State { @Override public void doAction(Context context) { System.out.println("Player is in stop state"); context.setState(this); } public String toString() { return "Stop State"; } }
package com.andrew.pattern0308.state.model01; public class Context { private State state; public Context() { state = null; } public State getState() { return state; } public void setState(State state) { this.state = state; } }
package com.andrew.pattern0308.state.model01; /** * 1. 状态模式 * * @author andrew * @date 2018/09/01 */ public class Client { public static void main(String[] args) { Context context = new Context(); StartState startState = new StartState(); startState.doAction(context); System.out.println(context.getState().toString()); StopState stopState = new StopState(); stopState.doAction(context); System.out.println(context.getState().toString()); } } 运行结果: Player is in start state Start State Player is in stop state Stop State
发表评论
-
3. 行为型模式 (11) 解释器模式
2018-11-08 10:39 3943. 行为型模式 (11) 解释器模式 解释器模式(In ... -
3. 行为型模式 (10) 中介者模式
2018-11-08 09:56 3703. 行为型模式 (10) 中介者模式 中介者模式(Me ... -
3. 行为型模式 (9) 访问者模式
2018-11-07 14:30 3703. 行为型模式 (9) 访问者模式 访问者模式(Vis ... -
3. 行为型模式 (7) 备忘录模式
2018-11-06 14:27 4343. 行为型模式 (7) 备忘录模式 备忘录模式(Mem ... -
3. 行为型模式 (6) 命令模式
2018-11-06 11:40 3823. 行为型模式 (6) 命令模式 命令模式(Comma ... -
3. 行为型模式 (5) 责任链模式
2018-11-06 09:40 4343. 行为型模式 (5) 责任链模式 责任链模式(Cha ... -
3. 行为型模式 (4) 迭代子模式
2018-11-05 14:23 3533. 行为型模式 (4) 迭代 ... -
3. 行为型模式 (3) 观察者模式
2018-11-02 16:17 4483. 行为型模式 (3) 观察者模式 当对象间存在一对多 ... -
3. 行为型模式 (2) 模板方法模式
2018-11-02 09:26 4193. 行为型模式 (2) 模板方法模式 在模板模式(Te ... -
3. 行为型模式 (1) 策略模式
2018-11-01 09:23 4393. 行为型模式 (1) 策略模式 在策略模式(Stra ... -
2. 结构型模式 (3) 代理模式
2018-10-29 11:26 3752. 结构型模式 (3) 代理模式 代理模式(Proxy ... -
2. 结构型模式 (7) 享元模式
2018-10-30 13:27 4142. 结构型模式 (7) 享元模式 享元模式(Flywe ... -
2. 结构型模式 (6) 组合模式
2018-10-30 09:50 3662. 结构型模式 (6) 组合模式 组合模式(Compo ... -
2. 结构型模式 (2) 装饰者模式
2018-10-29 09:30 4112. 结构型模式 (2) 装饰器模式 装饰器模式(Dec ... -
2. 结构型模式 (5) 桥接模式
2018-10-30 09:11 3952. 结构型模式 (5) 桥接模式 桥接(Bridge) ... -
2. 结构型模式 (4) 外观模式
2018-10-29 14:20 3512. 结构型模式 (4) 外观模式 外观模式(Fac ... -
2. 结构型模式 (1) 适配器模式
2018-10-26 15:35 3852. 结构型模式 (1) 适配器模式 将一个类的接口转换 ... -
1. 创建型模式 (2) 原型模式
2018-09-12 13:46 7451. 创建型模式 (2) 原型模式 用原型实例指定创建对 ... -
1. 创建型模式 (3) 建造者模式
2018-10-25 16:28 3731. 创建型模式 (3) 建造 ... -
1. 创建型模式 (1) 单例模式
2018-09-12 13:42 4311. 创建型模式 (3) 单例模式 单例模式是为确保一个 ...
相关推荐
设计模式主要分为三大类: 1.创建型模式:工厂模式、抽象...4.行为型模式:模板方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。
8. **状态模式**:允许对象在其内部状态改变时改变其行为,对象看起来似乎修改了它的类。 9. **访问者模式**:定义一个访问者的接口,用于访问一个对象结构中的元素,并定义一个访问操作在元素上的实现。 10. **迭代...
创建型: 1. 单件模式(Singleton Pattern) 2. 抽象工厂(Abstract Factory) 3.... 4.... 5....结构型: 6.... 7.... 8.... 9.... 10.... 11.... 12.... 13.... 14.... 15....行为型: 16.... 17.... 18.... 19.... 20.... 状态模式(State Pattern)
状态模式是一种行为设计模式,它允许对象在内部状态改变时改变其行为,对象看起来似乎修改了它的类。在C#编程中,这种模式被广泛应用于处理具有多种状态的对象,使得对象的状态转换更加清晰和易于管理。 状态模式的...
状态模式(State Pattern)是面向对象编程中用于处理具有多种状态的对象的行为变化问题的一种行为设计模式。状态模式的核心思想是将状态的判断逻辑与状态改变时的行为封装在不同的类中,对象根据其当前状态来调用...
c#设计模式 行为型模式 包括8个设计模式的实验报告+源代码。实验报告包括实验类图和个人总结的一些小技巧,源代码。包括:职责链模式、命令模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略...
c++设计模式-行为型模式-状态模式;qt工程;c++简单源码; 状态(State)模式的定义:对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。
7. **其他未详细展开的模式**:除了上述模式,还有其他行为型模式,如观察者模式、模板方法模式、访问者模式、状态模式等,它们各自解决了特定的编程问题,如事件通知、算法骨架、对象行为的动态变化等。 理解并...
JAVA-设计模式-行为型模式-状态模式
状态模式允许对象在其内部状态改变时改变其行为。对象看起来似乎修改了它的类,但实际上它只是改变了状态。比如一个订单在不同的状态下(如待支付、已支付、已发货等),其行为会有所不同。 8. **命令模式**: ...
在给定的文档中,提到了23种设计模式中的几种行为型模式,包括责任链模式、迭代器模式、中介者模式、命令模式、解释器模式、访问者模式、策略模式、模板方法模式、状态模式、观察者模式以及备忘录模式。下面将对这些...
设计模式(创建型、结构型、行为型) 设计模式是软件设计中的一种重要概念,它们可以帮助开发者更好地设计和实现软件系统。根据GoF(Gang of Four)的分类,设计模式可以分为三大类:创建型、结构型和行为型。 ...
状态模式是一种行为设计模式,它允许对象在内部状态改变时改变其行为,对象看起来似乎修改了它的类。这种模式常用于处理对象的状态转换,使得代码更易于理解和维护。在这个模式中,状态通常由不同的类来表示,每个类...
8. 状态模式(State):允许一个对象在其内部状态改变时改变它的行为。 9. 策略模式(Strategy):定义一组可相互替换的算法,并使它们在运行时可以互换。 10. 模板方法模式(Template Method):在一个方法中定义一...
10. **状态模式**:状态模式允许对象在内部状态改变时改变它的行为,对象看起来似乎修改了它的类。Python中,可以通过状态类和上下文类的组合来实现。 通过理解并应用这些行为型模式,开发者可以在Python项目中构建...
本篇将探讨两种重要的行为设计模式:责任链模式(Chain of Responsibility Pattern)和状态模式(State Pattern)。 **责任链模式**是一种使多个对象都有机会处理请求的模式,避免请求发送者与接收者之间的耦合。在...
创建型: 1. 单件模式(Singleton Pattern) 2. 抽象工厂(Abstract Factory) 3. 建造者模式(Builder) 4. 工厂方法模式(Factory Method) 5. 原型模式(Prototype)结构型: 6.... 状态模式(State Pattern)
3. 行为型模式:如策略模式(Strategy)、模板方法模式(Template Method)、观察者模式(Observer)、命令模式(Command)、迭代器模式(Iterator)、访问者模式(Visitor)、备忘录模式(Memento)、状态模式...