java设计模式之状态模式
2017-11-29 17:20
411 查看
java设计模式参考文章:
Java设计模式实战,23种设计模式介绍以及在Java中的实现,Java设计模式, Java经典设计模式之五大创建型模式
## 定义 ##
允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。
## 优点 ##
使用一个类封装对象的一种状态,很容易增加新的状态
在状态模式中,环境(Context)中不必出现大量的条件判断语句。环境(Context)实例所呈现的状态变得更加清晰、容易理解。
使用状态模式可以让用户程序很方便地切换环境(Context)实例的状态。
使用状态模式不会让环境(Context)中的实例中出现内部状态不一致的情况。
当状态对象没有实例变量时,环境(Context)的各个实例可以共享一个状态对象。
Java设计模式实战,23种设计模式介绍以及在Java中的实现,Java设计模式, Java经典设计模式之五大创建型模式
## 定义 ##
允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。
代码举例
案例: 问题跟踪(Bug状态流转): 新建(New) -> 打开(Open) -> 解决(Fixed) -> 关闭(Closed)……..public interface State { void handle(Context context); } public class NewState implements State { public void handle(Context context) { if (context.getState() == this) { // 本状态下的核心业务处理 System.out.println("测试: 发现了Bug"); // 状态流转 context.setState(new OpenState()); } } } public class OpenState implements State { public void handle(Context context) { if (context.getState() == this) { System.out.println("开发: Bug已经看到, 正在处理"); context.setState(new FixedState()); } } } public class FixedState implements State { public void handle(Context context) { if (context.getState() == this) { System.out.println("开发: Bug已经修复"); } } } public class Context { private State state; public Context(State state) { this.state = state; } public State getState() { return state; } public void setState(State state) { this.state = state; } public void request() { if (state != null) { state.handle(this); } } } public class Main { public static void main(String[] args) { Context context = new Context(new NewState()); context.request(); context.request(); context.request(); context.request(); context.request(); } }
## 优点 ##
使用一个类封装对象的一种状态,很容易增加新的状态
在状态模式中,环境(Context)中不必出现大量的条件判断语句。环境(Context)实例所呈现的状态变得更加清晰、容易理解。
使用状态模式可以让用户程序很方便地切换环境(Context)实例的状态。
使用状态模式不会让环境(Context)中的实例中出现内部状态不一致的情况。
当状态对象没有实例变量时,环境(Context)的各个实例可以共享一个状态对象。
相关文章推荐
- java设计模式---状态模式
- Java开发中的23种设计模式详解----状态模式(State)
- JAVA设计模式——状态模式(State)
- Java设计模式之状态模式
- Java设计模式之状态模式
- java设计模式(行为型)之状态模式
- java设计模式(八)状态模式
- java设计模式系列--状态模式
- Java设计模式-状态模式(State)
- java设计模式之状态模式
- Java设计模式之状态模式
- java设计模式---状态模式
- Java设计模式之状态模式
- 【笨鸟先飞】Java重新学习日记21--设计模式之模板模式和状态模式简介
- JAVA设计模式--状态模式
- JAVA设计模式之状态模式
- Java设计模式之状态模式
- JAVA--状态模式(State)--设计模式二十
- java设计模式---状态模式(State pattern)
- Java 设计模式 之 状态模式(State)