状态模式
Posted lzh66
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了状态模式相关的知识,希望对你有一定的参考价值。
定义:(源于Design Pattern):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。
public interface State { public void doJob(Washing washing); }
public class Start implements State { @Override public void doJob(Washing washing) { System.out.println("Start Washing Clothes!"); washing.setState(new Work()); washing.request(); } }
public class Work implements State{ @Override public void doJob(Washing washing) { System.out.println("Working Now!"); washing.setState(new End()); washing.request(); } }
public class End implements State{ @Override public void doJob(Washing washing) { System.out.println("All Finished!"); washing.setState(null); } }
public class Washing { private State state = null; public void setState(State state) { this.state = state; if (state == null) { System.out.println("Current state: null!"); } else { System.out.println("Current state: " + state.getClass().getName()); } } public void request() { if (state != null) { state.doJob(this); } } }
public class Demo { public static void main(String[] args) { Washing washing = new Washing(); washing.setState(new Start()); washing.request(); } }
Current state: state.Start Start Washing Clothes! Current state: state.Work Working Now! Current state: state.End All Finished! Current state: null!
以上是关于状态模式的主要内容,如果未能解决你的问题,请参考以下文章