设计模式的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