状态模式(State Pattern)

本文介绍状态模式的概念及其在Java中的实现方式。状态模式允许对象在内部状态改变时改变其行为,仿佛改变了类一样。通过示例代码展示如何使用状态模式来管理不同状态下的对象行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    状态模式,又称状态对象模式,状态模式是对象的行为模式。状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。
示例:
1、结构
    状态模式把所研究的对象的行为包装在不同的状态对象里,每一个状态对象都属于一个抽象状态类的一个子类。状态模式的意图是让一个对象在其内部状态改变的时候,其行为也随之改变。状态模式的示意性类图如下图所示:

状态模式(State <wbr>Pattern)

2、java代码
State接口:
package state.state;
public interface State {
 public void sampleOperation();
}

 
ConcreteState类:
package state.state;
public class ConcreteState implements State{
 public void sampleOperation() {
  System.out.println("ConcreteState。。。。。。");
 } 
}

 
Context类:
package state.context;
import state.state.State;
public class Context {
 private State state;
 public void sampleOperation(){
  state.sampleOperation();
 }
 public void setState(State state) {
  this.state = state;
 }
}
 
 
Client类:
package state;
import state.context.Context;
import state.state.ConcreteState;
import state.state.State;
public class Client {
 private static Context context = new Context();
 private static State state;
 public static void main(String args[]){
  state = new ConcreteState();
  context.setState(state);
  context.sampleOperation();
 }
}
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值