`
dreamstone
  • 浏览: 288398 次
  • 来自: ...
文章分类
社区版块
存档分类

Java 中的模式 --- 简单的状态模式

阅读更多
状态模式很简单,无论是理解,还是实现,都很简单。
一、定义:
1,状态模式允许一个"对象"在其内部状态改变的时候改变其行为。
2,状态模式的角色:
抽象状态,具体状态,环境(context)角色
状态模式的角色比较简单,不用解释了,看名字就能了解。
二、状态模式的实现
1,简单实例
 1public class Context{
 2    private State state;
 3    public void sampleOperation(){
 4        state.sampleOperation();
 5    }

 6    public void setState(State state){
 7        this.state = state;
 8    }

 9}

10public interface State{
11    void sampleOperation();
12}

13public class ConcreteState implements State {
14    public void sampleOperation();
15}
2、状态模式的经典实现
Tcp就是状态模式的一个经典实现:TcpConnect 他有三个状态,TcpEstablished  TcpListen  TcpClosed
TcpConnect的功能会跟着状态的改变而改变。或是Established,或是Listen,或是Closed
三、状态模式的与策略模式,看到上边的部分,很容易让人想到策略模式,这两个模式有什么区别呢?如何使用
策略模式:
1,当一个环境角色选择了一个具体的策略,那么在整个环境类的生命周期都不会改变
2,策略模式的环境自己选择一个具体的策略
3,策略模式并不明确告诉客户端它所选择的具体策略是什么,对客户是黑箱。
状态模式:
1,在整个环境类的生命周期中会有明显的状态改变。
2,状态模式是被外在原因放入一个策略
3,状态模式明显的告诉客户端当前的状态,对客户是白箱。
分享到:
评论

相关推荐

    java-设计模式-状态模式-模拟审批流程-二级审批 完整代码

    通过使用状态模式,审批流程的实现变得更加清晰,每个状态及其行为被封装在独立的类中,使得添加新的审批步骤或修改现有状态的行为变得简单。此外,状态模式还有助于减少条件语句,提高代码的可读性和可维护性。 ...

    java设计模式---诙谐易懂版

    代理模式(Proxy Pattern)、单例模式(Singleton Pattern)、工厂方法模式...状态模式(State Pattern)、原型模式(Prototype Pattern)、中介者模式(Mediator Pattern)、解释器模式(Interpreter Pattern)、享元...

    java 设计模式之状态模式

    以下是一个简单的Java状态模式实现: ```java // Context接口/抽象类 public interface Context { void request(); void setState(State state); } // State抽象类 public abstract class State { public ...

    java设计模式之-状态模式-实现

    在Java设计模式中,状态模式的核心概念包括以下几个部分: 1. **状态(State)**:这是个接口或抽象类,定义了状态对象的公共行为。每个状态都对应一个特定的操作集,这些操作可能会影响对象的状态。 2. **具体...

    java与模式-阎宏

    4. 行为型模式:包括职责链模式、命令模式、解释器模式、迭代器模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式。行为型模式关注于对象之间的交互和行为,帮助我们更好地管理复杂的...

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

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

    JAVA-设计模式-行为型模式-状态模式

    JAVA-设计模式-行为型模式-状态模式

    Java与模式---闫宏

    3. **设计模式分类**:常见的设计模式分为三大类:创建型模式(如工厂模式、抽象工厂模式、单例模式等)、结构型模式(如适配器模式、桥接模式、装饰器模式等)和行为型模式(如观察者模式、策略模式、命令模式等)...

    Java设计模式----通俗易懂版

    - 状态模式:允许对象在其内部状态改变时改变它的行为,看起来好像对象改变了它的类。 - 模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。 - 访问者模式:表示一个作用于某对象结构中的各...

    JAVA设计模式-chm版

    包括责任链模式(Chain of Responsibility)、命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、中介者模式(Mediator)、备忘录模式(Memento)、观察者模式(Observer)、状态模式...

    java常用设计模式-状态模式

    Java 架构设计模式 - 状态模式和模板模式 在软件设计中,了解设计模式非常重要,它可以帮助开发者编写更好的代码,使得系统更加灵活、可维护和可扩展。今天,我们将讨论两种常用的Java设计模式:状态模式和模板模式...

    java与模式-清晰书签版

    如单例模式、工厂方法、抽象工厂、建造者模式、原型模式、适配器模式、装饰器模式、代理模式、桥接模式、组合模式、享元模式、外观模式、职责链...者模式、备忘录模式、状态模式、策略模式、模板方法模式和观察者模式...

    java-design-patterns-master_JAVAdesignpattens_java_design_

    17. **状态模式(State Pattern)**:允许对象在其内部状态改变时改变其行为,对象看起来似乎改变了它的类。 18. **访问者模式(Visitor Pattern)**:在不改变类的前提下,增加新的操作行为,使得访问者可以作用于...

    java之 ------ 几种常见的简单设计模式

    ### Java之几种常见的简单设计模式 #### 设计模式概述 设计模式是一套被广泛采纳的、经过实践检验的代码设计经验总结。它们提供了解决在软件开发过程中经常遇到的复杂问题的标准方法。采用设计模式的目的在于提高...

    java设计模式-状态模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向...设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    设计模式-Java语言中的应用

    结构型模式(如适配器模式、装饰器模式、代理模式、桥接模式、组合模式、外观模式、享元模式)以及行为型模式(如策略模式、模板方法模式、观察...器模式、责任链模式、命令模式、备忘录模式、状态模式、解释器模式)...

    55-Java设计模式之策略模式与状态模式1

    策略模式和状态模式都是 Java 设计模式中的重要组成部分,它们可以帮助我们解决复杂的问题,使得代码更加灵活和可维护。在实际工作中,了解和应用这些设计模式对于提高开发效率和代码质量是非常重要的。

    java设计模式的应用

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

    Java与模式-Java

    - **单例模式与MX记录**:讨论单例模式在Java中的实现方式及其应用场景,例如在网络环境中使用MX记录来管理唯一的资源。 - **多例模式与多语言支持**:探索多例模式的概念,以及如何利用这种模式来支持多语言环境下...

    Java设计模式-

    - 这类模式主要关注对象之间的责任分配和交互方式,包括策略模式、模板方法模式、观察者模式、迭代器模式、命令模式、责任链模式、备忘录模式、解释器模式、状态模式、访问者模式等。这些模式分别在决策制定、算法...

Global site tag (gtag.js) - Google Analytics