设计模式的3个分类:创建型模式、结构型模式、行为型模式
状态模式定义:
允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。
状态模式图示:
代码实现:
//定义状态接口 public interface State { void handle(Context context); } public class ConcreteStateA implements State{ @Override public void handle(Context context) { System.out.println("the is stateA! do the handleA method!"); } } public class ConcreteStateB implements State{ @Override public void handle(Context context) { System.out.println("the is stateB! do the handleB method!"); } } public class Context { private State state; public Context(State state) { this.state = state; } public void setState(State state) { this.state = state; } public void request() { state.handle(this); } } //Test public class StatePatternDemo { public static void main(String[] args) { Context context = new Context(new ConcreteStateA()); context.request(); context.setState(new ConcreteStateB()); context.request(); } }
思考:
策略模式和状态模式及其相似又是单独的两个模式,相同的和不同点又都是哪些?
下一篇介绍。
ps:
目前的这些整体写的都比较简单,一是时间有限,二是写这些主要也是梳理自己的思路和调整状态,可以结合其他更全面的设计模式的文章来看。
--End
原文:https://www.cnblogs.com/heibingtai/p/14056097.html