状态模式

来源:互联网 发布:梦里花落知多少意思 编辑:程序博客网 时间:2024/05/29 12:00

  核心思想就是:当对象的状态改变时,同时改变其行为,很好理解!就拿QQ来说,有几种状态,在线、隐身、忙碌等,每个状态对应不同的操作,而且你的好友也能看到你的状态,所以,状态模式就两点:1、可以通过改变状态来获得不同的行为。2、你的好友能同时看到你的变化。

/** * @author: muyichun * @date  : 2016年3月23日18:59:40 * @function: 状态模式 */public class Main{public static void main(String[] args) {State state = new State();Context context = new Context(state);//设置第一种状态state.setValue("state1");context.method();//设置第二种状态state.setValue("state2");context.method();}}/** * 状态类的核心类 */class State{private String value;public String getValue(){return value;}public void setValue(String value){this.value = value;}public void method1(){System.out.println("execute the first opt!");}public void method2(){System.out.println("execute the second opt!");}}/** * 状态模式的切换类 */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 method(){if (state.getValue().equals("state1")){state.method1();}else if(state.getValue().equals("state2")){state.method2();}}}

——贴上自己喜欢的代码!

0 0
原创粉丝点击