这里有新鲜出炉的Java函数式编程,程序狗速度看过来!
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称。
这篇文章主要帮助大家轻松掌握Java状态模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
定义:在状态模式(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("物体处于静止状态");
- }
- }
状态模式是用于对象状态比较多的情况,比如完成一件事的时候有未完成、已完成、进行中、搁置等状态,这时候就可以考虑是用状态模式。
来源: http://www.phperz.com/article/17/1123/359859.html