什么是状态模式
通过不同的状态,动态调用不同的对象,完成不同的行为
(状态模式与策略模式挺相似,但是状态模式是没有共同的行为,策略模式是有共同的行为)
示例图
图片.png示例代码
1.创建抽象的状态接口 AbstractState
public interface AbstractState {
String orderState();
}
2.创建派单类StateA
public class StateA implements AbstractState {
@Override
public String orderState() {
return "派单中...";
}
}
3.创建派送类StateB
public class StateB implements AbstractState{
@Override
public String orderState() {
return "派送中...";
}
}
4.创建签收类StateC
public class StateC implements AbstractState {
@Override
public String orderState() {
return "已签收...";
}
}
5.创建上下文类ContextState
public class ContextState {
private AbstractState abstractState;
public ContextState(AbstractState abstractState) {
this.abstractState = abstractState;
}
public String getOrderContextState(){
return abstractState.orderState();
}
}
6.创建启动类
public class Test {
public static void main(String[] args) {
ContextState contextState = new ContextState(new StateA());
String str = contextState.getOrderContextState();
System.out.println(str);
ContextState contextState1 = new ContextState(new StateB());
String str1 = contextState1.getOrderContextState();
System.out.println(str1);
ContextState contextState2 = new ContextState(new StateC());
String str2 = contextState2.getOrderContextState();
System.out.println(str2);
}
}
7.运行结果
图片.png
网友评论