1.静态主调函数
package com;
public class Test {
public static void main(String[] args)
{
State state = new StateA();
StateManager sm = new StateManager(state);
for(int i=0;i<4;i++)
{
state = sm.nextState();
System.out.print(":"+state);
if(state == null)
{
System.out.print("-->");
}
sm.nextStep();
}
}
}
2.State接口类
package com;
public interface State
{
public void lastStep(StateManager s);
public void nextStep(StateManager s);
}
3.状态管理类
package com;
public class StateManager
{
private State state;
public StateManager(State initState)
{
this.state = initState;
}
public void setState(State state)
{
this.state = state;
}
//下一步
public void nextStep()
{
if(this.state != null)
this.state.nextStep(this);
}
//上一步
public void lastStep()
{
if(this.state != null)
this.state.lastStep(this);
}
//返回下一个状态
public State nextState()
{
return this.state;
}
}
4.状态类
package com;
public class StateA implements State
{
public void lastStep(StateManager s)
{
s.setState(new StateC());
}
public void nextStep(StateManager s)
{
s.setState(new StateB());
}
public String toString()
{
return "State A";
}
}
package com;
public class StateB implements State
{
public void lastStep(StateManager s)
{
s.setState(new StateA());
}
public void nextStep(StateManager s)
{
s.setState(new StateC());
}
public String toString()
{
return "State B";
}
}
package com;
public class StateC implements State
{
public void lastStep(StateManager s)
{
s.setState(new StateB());
}
public void nextStep(StateManager s)
{
s.setState(new StateA());
}
public String toString()
{
return "State C";
}
}
4. 总结:
(1) 采用interface实现多继承,加入管理类,方便状态切换
(2)应用场景:
1、不同的状态(可能会对应相应的行为),
2、不同的行为; 间反复进行切换,则应优先考虑状态模式。
分享到:
相关推荐
Java 设计模式之 State 模式详解 State 模式是 Java 设计模式的一种,用于解决状态切换问题。当对象的状态改变时,对象的行为也随之改变。State 模式将状态和行为分离,实现了状态切换的灵活性和可扩展性。 定义:...
Java 设计模式之 State 模式 State 模式是一种行为型设计模式,它允许对象在其内部状态改变时改变其行为。该模式的主要思想是将对象的状态和行为分离,使用不同的状态子类来实现不同的行为。 何时使用 State 模式...
包括 Iterator(迭代模式)、Template(模板模式)、Chain of Responsibility(责任链模式)、Memento(纪念品模式)、Mediator(中介模式)、Interpreter(解释器模式)、Strategy(策略模式)、State(状态模式)...
这是JAVA设计模式中属于行为模式的部分,包括Template(模板模式)、Chain of Responsibility(责任链模式)、Memento(纪念品模式)、Mediator(中介模式)、Strategy(策略模式)、State 、Observer(观察者模式)、Visitor...
**行为型模式**:包括策略(Strategy)、模板方法(Template Method)、观察者(Observer)、迭代器(Iterator)、访问者(Visitor)、责任链(Chain of Responsibility)、命令(Command)、备忘录(Memento)、...
在Java中,State模式通常通过创建一系列的子类来表示不同的状态,并让每个子类实现特定状态下的行为。下面将详细讨论State模式的原理、适用场景以及如何在Java中实现。 State模式的核心思想是将状态相关的操作封装...
Java设计模式中的State模式是一种行为设计模式,它允许对象在其内部状态改变时改变它的行为。State模式的核心思想是将状态相关的代码封装到独立的对象中,这样可以使得对象在其状态改变时,表现出不同的行为,而无需...
在Java中,状态模式通常通过定义不同的状态类和一个上下文类来实现,其中上下文类持有状态对象并调用其方法来响应外部请求。 ## 一、模式介绍 状态模式的核心是将对象的行为与其当前状态关联起来。当对象的状态...
行为型设计模式如策略(Strategy)、模板方法(Template Method)、观察者(Observer)、命令(Command)、迭代器(Iterator)、访问者(Visitor)、状态(State)、职责链(Chain of Responsibility)、解释器...
7. 简单工厂(Simple Factory)、建造者(Builder)、外观(Facade)、享元(Flyweight)、职责链(Chain of Responsibility)、解释器(Interpreter)、状态(State)、访问者(Visitor)模式等: 这些模式都是在...
Java设计模式中的State模式是一种行为设计模式,它允许对象在其内部状态改变时改变它的行为。State模式的核心思想是封装可能改变的行为到相应的状态对象中,让对象在其内部状态改变时可以调用不同的行为方法,而不是...
包括策略模式(Strategy)、模板方法模式(Template Method)、观察者模式(Observer)、迭代器模式(Iterator)、命令模式(Command)、责任链模式(Chain of Responsibility)、备忘录模式(Memento)、状态模式...
行为型模式如策略(Strategy)、模板方法(Template Method)、观察者(Observer)、迭代器(Iterator)、访问者(Visitor)、责任链(Chain of Responsibility)、命令(Command)、备忘录(Memento)、解释器...
包括责任链模式(Chain of Responsibility)、命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、中介者模式(Mediator)、备忘录模式(Memento)、观察者模式(Observer)、状态模式...
16. **状态模式(State)** 状态模式允许对象在其内部状态改变时改变它的行为,对象看起来好像修改了它的类。Java中,很多游戏状态管理就使用了状态模式。 17. **策略模式(Strategy)** 策略模式定义了一系列...
第22章 状态(state)模式 193 第23章 策略(strategy)模式 204 第24章 命令(command)模式 213 第25章 解释器(interpreter)模式 221 第26章 扩展型模式介绍 236 第27章 装饰器(decorator)模式 242 第28章 迭代器...
Java 设计模式之 State(状态模式) Java 设计模式之 State(状态模式)是行为型模式之一,主要解决的问题是当一个对象的行为取决于它的状态,并且它需要在运行时刻根据不同的状态对其行为进行改变时,如何对其进行...
4. **行为型模式**:这些模式关注对象间如何交互和分配责任,如命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、备忘录模式(Memento)、观察者模式(Observer)、状态模式(State)、...
章节介绍:1、爪哇语言结构性模式之变压器模式介绍 2、爪哇语言抽象工厂创立性模式介绍 3、工厂方法创立...10、设计模式之State 11、设计模式之Facade(外观) 12、设计模式之Interpreter(解释器) 13、设计模式之Visitor