- 浏览: 1436839 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (409)
- Java (48)
- Spring (29)
- struts2 (17)
- hibernate (4)
- 设计模式 (24)
- jbpm (1)
- JavaScript (5)
- 统计报表 (7)
- ExtJS_3.0 (35)
- struts1 (1)
- 分析设计 (3)
- Flex3 (24)
- UML (2)
- 数据库 (18)
- PowerDesigner (2)
- 应用服务器 (3)
- WebService (5)
- ActiveMQ_5.3.2 (6)
- Java通信技术 (11)
- GWT (6)
- OSGi (15)
- android (11)
- liferay6.0.6 (13)
- jquery (13)
- Linux (3)
- java.util.concurrent (16)
- guava (9)
- 开发模式 (1)
- 大数据 (2)
- 互联网金融 (4)
- treegrid-3.0 (7)
- 分布式 (8)
- GO语言 (4)
- maven (1)
- 缓存技术 (6)
- 其他 (2)
- 前端页面 (1)
- heasy (1)
- spring cloud(F版) (21)
- springboot (12)
- springmvc (5)
- mybatis (3)
- dubbo (1)
- 物联网 (0)
最新评论
-
raymond.chen:
谢谢您的分享
使用Ngrok解决通过外网访问内网web应用 -
wangyudong:
速度有点慢,不过在也找到了一个开源的holer,配置一个key ...
使用Ngrok解决通过外网访问内网web应用 -
a1006458222:
...
Axis2的部署和应用 -
偷师来了:
不好意思 这样的博客我觉得就灭有必要分享出来了 命令大家都会看 ...
Consul框架介绍 -
lliiqiang:
怎么直接删除文件夹啊?固定的几个文件可以删除,不固定的呢?需要 ...
Flex AIR —— 文件读写
一、状态模式需要两种类型实体参与:
1、状态管理器
2、状态抽象类或接口
二、源码
1、状态抽象类
public abstract class State { public abstract void turn(Context context); }
2、状态子类
public class East extends State { public void turn(Context context){ context.setState(new South()); System.out.println("方向转变:东到南"); } }
public class South extends State { public void turn(Context context){ context.setState(new West()); System.out.println("方向转变:南到西"); } }
public class West extends State { public void turn(Context context){ context.setState(new North()); System.out.println("方向转变:西到北"); } }
public class North extends State { public void turn(Context context){ context.setState(new East()); System.out.println("方向转变:北到东"); } }
3、状态管理器
public class Context { private State state; public State getState() { return state; } public void setState(State state) { this.state = state; } public Context(){ this.state = new East(); } public void turn(){ this.state.turn(this); } }
4、测试类
public class Test { public static void main(String[] args) { Context c = new Context(); c.turn(); //东到南 c.turn(); //南到西 c.turn(); //西到北 c.turn(); //北到东 } }
发表评论
-
设计模式概述
2015-10-11 00:17 876设计模式(Design pattern ... -
备忘录模式(Memento Pattern)
2010-04-10 22:58 1390在不破坏封装的前提下,捕获并且保持一个对象的内部状态,这样可以 ... -
中介者模式(Mediator Pattern)
2010-04-10 17:45 2040定义一个对象封装一系列的对象交互,使得对象之间不需要显式地相互 ... -
迭代器模式(Iterator Pattern)
2010-04-01 21:36 2413提供一种方法访问一个容器(container)对象中各个元素, ... -
解析器模式范例:阿拉伯数字金额转为中文数字金额
2010-03-31 20:27 1830表达式抽象类: public abstract class ... -
解析器模式(Interpreter Pattern)
2010-03-30 21:29 2029定义语言的文法,并且建立一个解释器来解释该语言中的句子。 ... -
命令模式(Command Pattern)
2010-03-29 21:34 1685命令模式本质是对命令的封装,从而把发出命令的责任和执行命令的责 ... -
责任链模式(Chain of Responsibility Pattern)
2010-03-28 11:28 1502责任链是用一系列类试图处理一个请求,这些类之间是一个松散的耦合 ... -
代理模式(Proxy Pattern)
2010-03-26 22:27 1518为其他对象提供一种 ... -
轻量级模式(Flyweight Pattern)
2010-03-25 23:47 1981轻量级模式实现对象的共享,从而减少内存分配的开销。该模式通常和 ... -
外观模式(Facade Pattern)
2010-03-25 22:39 1415外观模式,为子系统的一组接口提供一个统一的界面,此模式定义了 ... -
装饰模式(Decorator Pattern)
2010-01-28 23:50 2867动态给一个对象添加一些额外的职责。使用Decorator模式相 ... -
组合模式(Composite Pattern)
2010-01-26 22:22 4947组合模式主要是应对这样的问题:一类具有“容器特征”的对象 —— ... -
建造者模式(Builder Pattern)
2010-01-24 22:11 1395将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创 ... -
桥接模式(Bridge Pattern)
2009-05-05 09:29 1383将抽象部分与实现部分分离,使得它们两部分可以独立地变化。 ... -
适配器模式(Adapter Pattern)
2009-04-10 13:08 1473将一个接口转换成为客户想要的另一个接口,适配器模式使接口不兼容 ... -
观察者模式(Observer Pattern)
2009-03-26 17:58 1535一、概念 定义对象间的一种一对多依赖关系,使得每当一 ... -
访问者模式(Visitor Pattern)
2009-03-23 16:21 1690一、概念 在不修改已有程序结构的前提下,通过添 ... -
策略模式(Strategy Pattern)
2009-03-18 15:21 1454策略模式的本质:少用继承,多用组合。 策略模式属于对象的行 ... -
设计模式应用范例(一):上行短信管理器
2009-03-17 18:19 2380Spring AOP的应用:在处理业务短信之前,可以 ...
相关推荐
### 状态模式(State Pattern) #### 概念与定义 状态模式是一种行为设计模式,它允许对象在其内部状态改变时改变其行为,使对象看起来像是修改了它的类。该模式通过引入一个代表各种状态的类以及一个行为随着这些...
状态模式是一种行为设计模式,它使你能在运行时改变对象的行为。在状态模式中,一个对象的状态变化会导致其行为的变化,这种变化不是通过改变对象的类来实现的,而是通过改变对象的状态。这个模式的核心是封装可能...
状态模式-State Pattern状态模式-State Pattern【学习难度:,使用频率:】状态模式-State Pattern处理对象的多种状态及其相互
状态模式(State Pattern)是一种行为设计模式,它允许对象在内部状态改变时改变其行为,对象看起来似乎修改了它的类。这种模式将一个对象的行为分解为各个独立的状态,并且每个状态都封装在自己的类中,使得对象在...
状态模式是一种行为设计模式,它允许对象在内部状态改变时改变其行为,对象看起来似乎修改了它的类。这种模式常用于处理对象的状态变化,并且根据不同的状态,对象的行为也相应地变化。在C++中实现状态模式,我们...
在《设计模式》实战---状态模式(State Pattern)这篇文章中,作者可能详细探讨了以下关键点: 1. **模式定义**:状态模式允许对象在内部状态改变时改变其行为,对象看起来好像修改了它的类。这通过将每个状态封装...
在软件设计领域,状态模式(State Pattern)是一种行为设计模式,它允许对象在内部状态改变时改变其行为,对象看起来似乎修改了它的类。在这个案例中,“基于state pattern实现的xml解释器”指的是一个XML解析器,该...
状态模式定义Allow an object to alter its behavior when its internal state changes. The
StatePattern.unitypackage是一个unity演示的状态模式。有需要的同学可以自行下载。
State模式在实际使用中比较多,适合"状态的切换".因为我们经常会使用If elseif else 进行状态切换, 如果针对状态的这样判断切换反复出现,我们就要联想到是否可以采取State模式了. 不只是根据状态,也有根据属性.如果...
本篇将探讨两种重要的行为设计模式:责任链模式(Chain of Responsibility Pattern)和状态模式(State Pattern)。 **责任链模式**是一种使多个对象都有机会处理请求的模式,避免请求发送者与接收者之间的耦合。在...
备忘录模式(Memento Pattern) 策略模式(Strategy Pattern) 抽象工厂模式(Abstract Factory Pattern) 代理模式(Proxy Pattern) ...装饰模式(Decorator Pattern) 状态模式(State Pattern) 组合模式(Composite Pattern)
状态模式(State Pattern)是一种行为设计模式,它允许一个对象在其内部状态改变时改变它的行为。这个对象看起来好像修改了它的类。状态模式主要解决的是当一个对象的行为依赖于它的状态时,如何将这些状态从对象中...
与传统的状态模式相比,采用状态机模式设计的类更加具有重用性。 #### 关键词 设计、模式、自动机、有限状态机、行为、状态、转换、状态图 #### 引言 自[Kle56]引入正则表达式并证明了有限自动机与正则表达式的...
在"StatePattern"这个压缩包中,我们可能找到以下文件: - `State.java`: 定义了状态接口。 - `NormalState.java`, `BusyState.java`: 具体的状态类,实现了`State`接口并提供了对应状态的行为。 - `Context.java`:...
设计模式——状态模式状态模式(State Pattern):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类应用场景:当控制一个对象的状态转换的条件表达式过于复杂时,把状态的判断逻辑转移到表示不同...
创建型: 1. 单件模式(Singleton Pattern) 2. 抽象工厂(Abstract Factory) 3. 建造者模式(Builder) 4. 工厂方法模式(Factory Method) 5. 原型模式(Prototype)结构型: 6.... 状态模式(State Pattern)
状态模式(State Pattern) 空对象模式(Null Object Pattern) 策略模式(Strategy Pattern) 模板模式(Template Pattern) 访问者模式(Visitor Pattern) 4. J2EE 模式 MVC 模式(MVC Pattern) 业务代表...
状态模式(State Pattern)是一种行为设计模式,它允许对象在其内部状态改变时改变其行为,从而使对象看起来好像修改了其类。这种模式使得状态转换逻辑与状态对象本身相结合,而非采用复杂的条件语句。 #### 二、...