状态设计模式(State Pattern)
应用场景
角色
优点:
缺点:
状态设计和策略模式的区别
/***抽象状态*/
public interface State {void handle();
}
/*** 具体状态--订单新创建**/public class NewOrderState implements State{@Overridepublic void handle() {System.out.println("新订单,未支付");System.out.println("调用商户客服服务,有新订单n");}
}/*** 具体状态--订单已支付**/public class PayOrderState implements State{@Overridepublic void handle() {System.out.println("新订单已经支付");System.out.println("调用商户客服服务,订单已经支付");System.out.println("调用物流服务,未发货n");}
}/*** 具体状态--订单已经发货**/public class SendOrderState implements State{@Overridepublic void handle() {System.out.println("订单已经发货");System.out.println("调用短信服务,告诉用户已经发货");System.out.println("更新物流信息n");}
}
/***上下文**/public class OrderContext {private State state;public OrderContext(){}public void setState(State state) {this.state = state;System.out.println("订单状态变更!!");this.state.handle();}
}
/**
* 状态设计模式
*/
public class Main {public static void main(String[] args) {//上下文OrderContext orderContext = new OrderContext();orderContext.setState(new NewOrderState());orderContext.setState(new PayOrderState());orderContext.setState(new SendOrderState());}
}
注释:个人学习观点以作笔记,如有瑕疵望谅解
本文发布于:2024-01-31 15:47:45,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170668726329628.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |