`
bolan392
  • 浏览: 277109 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

十三、状态模式

 
阅读更多

   状态模式,当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中。

 

 

 

 

State

public abstract class State {

	public abstract void handle(Context context);

}

 

StateA

public class StateA extends State {

	public void handle(Context context){
		context.state = new StateB();
	}

}

 

StateB

public class StateB extends State {

	public void handle(Context context){

		context.state = new StateA();

	}

}

 Context

public class Context {

	public State state;

	public Context(State state){
		this.setState(state);
	}

	public void setState(State state){
		this.state = state;
		System.out.println("当前状态:" + state);
	}

	public State getState(){
		return this.state;
	}

	public void request(){
		state.handle(this);
	}

}

 

Client

class Client 
{
	public static void main(String[] args) 
	{
		Context c = new Context(new StateA());

		c.quest();
		c.quest();
		c.quest();
		c.quest();

	}
}

 

 

 

 

 

分享到:
评论

相关推荐

    设计模式-状态模式分享ppt

    #### 三、状态模式的核心概念 - **Context(上下文)**:定义了客户感兴趣的接口,并维护一个当前状态。这个类通常包含了一些业务逻辑或者触发状态转换的逻辑。 - **State(状态)**:定义了一个接口,封装了与...

    Java二十三种设计模式

    ### Java二十三种设计模式详解 #### 引言:设计模式的重要性 设计模式是软件工程领域的一种重要概念,它提供了一系列解决常见问题的模板。在Java编程中,掌握设计模式可以提升代码的质量、可读性和可维护性。下面...

    第十二课 状态模式1

    在"第十二课 状态模式1"的学习中,我们将探讨状态模式的使用场景、使用方式以及优缺点。 一、使用场景 状态模式适用于那些对象的行为取决于其状态,并且可以根据状态变化而改变其行为的情况。例如,在视频通话的...

    设计模式-状态模式(讲解及其实现代码)

    状态模式是一种行为设计模式,它允许对象在内部状态改变时改变其行为,对象看起来似乎修改了它的类。这种模式常用于处理对象的状态变化,并且在不同的状态下,对象的行为也相应地变化。 状态模式的主要组件包括: 1...

    (二十三种)设计模式

    本文将深入探讨二十三种经典的设计模式,旨在提高代码的可读性、可维护性和可扩展性。 1. **单例模式**:确保一个类只有一个实例,并提供全局访问点。在多线程环境中,正确实现单例模式尤为重要,防止多个线程同时...

    二十三种设计模式代码示例 c#版本

    以下是对二十三种设计模式的详细解读,以及它们在C#中的实现方式。 1. **单例模式**:确保一个类只有一个实例,并提供全局访问点。在C#中,可以使用静态内部类或双重检查锁定来实现。 2. **工厂方法模式**:定义一...

    java常用的二十三种设计模式

    ### Java常用的二十三种设计模式 #### 1. 工厂模式(Factory) 工厂模式是一种常用的创建型设计模式,它的核心思想是通过一个专门的类(即工厂类)来负责创建对象,而不是直接通过new关键字实例化对象。这种方式...

    C++二十三种设计模式源码

    本资源包含的"二十三种设计模式源码"提供了对这些模式的实际应用示例,帮助开发者深入理解和运用这些模式。 1. 单例模式(Singleton):确保一个类只有一个实例,并提供一个全局访问点。这种模式在需要频繁创建和...

    二十三种设计模式的详细解读 让您迅速了解设计模式

    在本文中,我们将深入探讨二十三种主要的设计模式,帮助您快速掌握这些重要的概念。 1. **单例模式**:确保一个类只有一个实例,并提供全局访问点。它常用于配置管理或数据库连接等场景。 2. **工厂模式**:提供一...

    二十三種設計模式Gof

    20. **状态模式**:状态模式允许对象在内部状态改变时改变其行为,对象看起来似乎修改了它的类。 21. **策略模式**:策略模式定义了一系列算法,并将每个算法封装起来,使它们可以互相替换,策略对象可以独立于使用...

    二十三种设计模式迷你手册

    - 状态模式:允许对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。 - 策略模式:定义一系列的算法,并将每一个算法封装起来,使它们可以相互替换。 - 模板方法模式:定义一个操作中的算法骨架...

    C++二十三种设计模式

    行为型模式涉及对象间的交互和责任分配,如策略模式(Strategy)、模板方法模式(Template Method)、观察者模式(Observer)、迭代器模式(Iterator)、命令模式(Command)、备忘录模式(Memento)、状态模式...

    二十三种设计模式手册

    19. **状态模式**:允许一个对象在其内部状态改变时改变它的行为,看起来就像改变了它的类。 20. **策略模式**:定义一系列算法,并将每个算法封装起来,使它们可以互相替换。策略模式让算法的变化独立于使用它的...

    C++二十三种设计模式.pdf

    18. **状态模式**:状态模式允许对象在其内部状态改变时改变其行为,对象看起来似乎修改了它的类。 19. **备忘录模式**:备忘录模式在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,...

    JAVA设计模式(十三种)

    在Java中,总共包括十三种设计模式,这些模式可以被划分为三大类:创建模式、结构模式和行为模式。 1. 创建模式: - 工厂模式(Factory):工厂模式是一种最基础的创建型模式,它提供了一种创建对象的最佳方式,...

Global site tag (gtag.js) - Google Analytics