您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页设计模式(二十三)行为型模式-状态模式 state

设计模式(二十三)行为型模式-状态模式 state

来源:筏尚旅游网

• 场景:

– 电梯的运行

      • 维修、正常、自动关门、自动开门、向上运行、向下运行、消防状态

– 红绿灯

      • 红灯、黄灯、绿灯

– 企业或系统

    • 公文的审批状态

       – 报销单据审批状态

       – 假条审批

– 网上购物时,订单的状态

      • 下单 • 已付款 • 已发货 • 送货中 • 已收货

– 酒店系统中,房间的状态变化:

       • 已预订 • 已入住 • 空闲

if(state==" 空闲"){
	if( 预订房间){
		预定操作;
		state=" 已预订";
	}else if( 住进房间){
		入住操作;
		state=" 已入住";
	}
}else if(“ 已预订"){
	if( 住进房间){
		入住操作;
		state=" 已入住";
	}else if( 取消预订){
		取消操作;
		state=" 空闲";
	}
}

当遇到这种需要频繁的修改状态时,考虑状态模式

• 酒店系统中,房间状态变化的相关类图结构:

• 核心:

– 用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题

• 结构:

– Context环境类

         • 环境类中维护一个State对象,他是定义了当前的状态。

– State抽象状态类

– ConcreteState具体状态类

          • 每一个类封装了一个状态对应的行为

• 开发中常见的场景:

– 银行系统中账号状态的管理

– OA系统中公文状态的管理

– 酒店系统中,房间状态的管理

– 线程对象各状态之间的切换

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务