`
raymond.chen
  • 浏览: 1436904 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

状态模式(State Pattern)

阅读更多

一、状态模式需要两种类型实体参与:

     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(); //北到东
	}
}

 

  • 大小: 25.2 KB
0
0
分享到:
评论

相关推荐

    状态模式 State Pattern

    ### 状态模式(State Pattern) #### 概念与定义 状态模式是一种行为设计模式,它允许对象在其内部状态改变时改变其行为,使对象看起来像是修改了它的类。该模式通过引入一个代表各种状态的类以及一个行为随着这些...

    设计模式之状态模式(State Pattern)

    状态模式是一种行为设计模式,它使你能在运行时改变对象的行为。在状态模式中,一个对象的状态变化会导致其行为的变化,这种变化不是通过改变对象的类来实现的,而是通过改变对象的状态。这个模式的核心是封装可能...

    JackChan1999#Java-Degisn-Patterns#状态模式-State Pattern1

    状态模式-State Pattern状态模式-State Pattern【学习难度:,使用频率:】状态模式-State Pattern处理对象的多种状态及其相互

    状态模式(State Pattern)是一种行为设计模式

    状态模式(State Pattern)是一种行为设计模式,它允许对象在内部状态改变时改变其行为,对象看起来似乎修改了它的类。这种模式将一个对象的行为分解为各个独立的状态,并且每个状态都封装在自己的类中,使得对象在...

    Head First 设计模式 (十) 状态模式(State pattern) C++实现

    状态模式是一种行为设计模式,它允许对象在内部状态改变时改变其行为,对象看起来似乎修改了它的类。这种模式常用于处理对象的状态变化,并且根据不同的状态,对象的行为也相应地变化。在C++中实现状态模式,我们...

    《设计模式》实战---状态模式(State Pattern)

    在《设计模式》实战---状态模式(State Pattern)这篇文章中,作者可能详细探讨了以下关键点: 1. **模式定义**:状态模式允许对象在内部状态改变时改变其行为,对象看起来好像修改了它的类。这通过将每个状态封装...

    基于state pattern实现的xml解释器

    在软件设计领域,状态模式(State Pattern)是一种行为设计模式,它允许对象在内部状态改变时改变其行为,对象看起来似乎修改了它的类。在这个案例中,“基于state pattern实现的xml解释器”指的是一个XML解析器,该...

    nevstop#LabVIEW-Design-Pattern#状态模式(State Pattern)1

    状态模式定义Allow an object to alter its behavior when its internal state changes. The

    StatePattern.unitypackage

    StatePattern.unitypackage是一个unity演示的状态模式。有需要的同学可以自行下载。

    设计模式State模式源码

    State模式在实际使用中比较多,适合"状态的切换".因为我们经常会使用If elseif else 进行状态切换, 如果针对状态的这样判断切换反复出现,我们就要联想到是否可以采取State模式了. 不只是根据状态,也有根据属性.如果...

    JAVA设计模式之行为模式 责任链模式和状态模式

    本篇将探讨两种重要的行为设计模式:责任链模式(Chain of Responsibility Pattern)和状态模式(State Pattern)。 **责任链模式**是一种使多个对象都有机会处理请求的模式,避免请求发送者与接收者之间的耦合。在...

    C#版 24种设计模式

    备忘录模式(Memento Pattern) 策略模式(Strategy Pattern) 抽象工厂模式(Abstract Factory Pattern) 代理模式(Proxy Pattern) ...装饰模式(Decorator Pattern) 状态模式(State Pattern) 组合模式(Composite Pattern)

    状态模式Java实现示例

    状态模式(State Pattern)是一种行为设计模式,它允许一个对象在其内部状态改变时改变它的行为。这个对象看起来好像修改了它的类。状态模式主要解决的是当一个对象的行为依赖于它的状态时,如何将这些状态从对象中...

    State Machine Java Pattern

    与传统的状态模式相比,采用状态机模式设计的类更加具有重用性。 #### 关键词 设计、模式、自动机、有限状态机、行为、状态、转换、状态图 #### 引言 自[Kle56]引入正则表达式并证明了有限自动机与正则表达式的...

    设计模式的状态模式的例子

    在"StatePattern"这个压缩包中,我们可能找到以下文件: - `State.java`: 定义了状态接口。 - `NormalState.java`, `BusyState.java`: 具体的状态类,实现了`State`接口并提供了对应状态的行为。 - `Context.java`:...

    python 状态模式(示例)

    设计模式——状态模式状态模式(State Pattern):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类应用场景:当控制一个对象的状态转换的条件表达式过于复杂时,把状态的判断逻辑转移到表示不同...

    C#设计模式_设计模式_C#_

    创建型: 1. 单件模式(Singleton Pattern) 2. 抽象工厂(Abstract Factory) 3. 建造者模式(Builder) 4. 工厂方法模式(Factory Method) 5. 原型模式(Prototype)结构型: 6.... 状态模式(State Pattern)

    用Java实现23种设计模式

    状态模式(State Pattern) 空对象模式(Null Object Pattern) 策略模式(Strategy Pattern) 模板模式(Template Pattern) 访问者模式(Visitor Pattern) 4. J2EE 模式 MVC 模式(MVC Pattern) 业务代表...

    状态模式ppt

    状态模式(State Pattern)是一种行为设计模式,它允许对象在其内部状态改变时改变其行为,从而使对象看起来好像修改了其类。这种模式使得状态转换逻辑与状态对象本身相结合,而非采用复杂的条件语句。 #### 二、...

Global site tag (gtag.js) - Google Analytics