Java设计模式之状态模式
2016-09-26 00:00
253 查看
定义:在状态模式(State Pattern)中,类的行为是基于它的状态改变的。
特点:
1、封装了转换规则。
2、枚举可能的状态,在枚举状态之前需要确定状态种类。
3、将所有与某个状态有关的行为放到一个类中,并且可以方便地增加新的状态,只需要改变对象状态即可改变对象的行为。
4、允许状态转换逻辑与状态对象合成一体,而不是某一个巨大的条件语句块。
5、可以让多个环境对象共享一个状态对象,从而减少系统中对象的个数。
企业及开发和常用框架中的应用:
实例:
状态模式是用于对象状态比较多的情况,比如完成一件事的时候有未完成、已完成、进行中、搁置等状态,这时候就可以考虑是用状态模式。
特点:
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("物体处于静止状态"); } }
状态模式是用于对象状态比较多的情况,比如完成一件事的时候有未完成、已完成、进行中、搁置等状态,这时候就可以考虑是用状态模式。
相关文章推荐
- java设计模式-状态模式(STATE)
- java设计模式-状态模式
- Java设计模式九:状态模式(State)
- java设计模式---状态模式
- java与设计模式之状态模式
- 设计模式解析和实现(C++, java)之二十--状态(state)模式
- 东子破解的java设计模式状态模式
- JAVA设计模式十二:--State(状态模式)
- 设计模式--行为模式--状态模式--Java
- java设计模式---状态模式
- java设计模式之状态设计模式
- java 设计模式实例 - 状态模式
- java设计模式之状态 模式State
- Java设计模式之二十三(状态模式)
- Java设计模式(10) —— 状态
- java设计模式-状态模式
- Java设计模式九:状态模式(State)
- java设计模式(八)状态模式
- java设计模式---状态模式
- Java 设计模式之状态模式