欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

轻松掌握Java状态模式

程序员文章站 2024-03-12 16:46:32
定义:在状态模式(state pattern)中,类的行为是基于它的状态改变的。 特点: 1、封装了转换规则。 2、枚举可能的状态,在枚举状态之前需要确定状态种类。...

定义:在状态模式(state pattern)中,类的行为是基于它的状态改变的。

特点:

1、封装了转换规则。

2、枚举可能的状态,在枚举状态之前需要确定状态种类。

3、将所有与某个状态有关的行为放到一个类中,并且可以方便地增加新的状态,只需要改变对象状态即可改变对象的行为。

4、允许状态转换逻辑与状态对象合成一体,而不是某一个巨大的条件语句块。

5、可以让多个环境对象共享一个状态对象,从而减少系统中对象的个数。

企业及开发和常用框架中的应用:

实例:

public class demo {

 public static void main(string[] args) {
 context context = new context();
 state move = new move();
 move.show(context);
 state stop = new stop();
 stop.show(context);
 }
}

class context{
 private state state;
 
 public void setstate(state state){
 system.out.println("给物体加持状态");
 this.state = state;
 }
}

interface state{
 void show(context context);
}

class move implements state{
 public void show(context context) {
 context.setstate(this);
 system.out.println("物体处于运动状态");
 }
}

class stop implements state{
 public void show(context context) {
 context.setstate(this);
 system.out.println("物体处于静止状态");
 }
}

状态模式是用于对象状态比较多的情况,比如完成一件事的时候有未完成、已完成、进行中、搁置等状态,这时候就可以考虑是用状态模式。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。