状态模式
状态模式是一种较为复杂的设计模式,它用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题。当系统中某个对象存在多个状态,这个状态之间可以进行转换,而对象在不同状态下行为补相同时可以使用状态模式。
定义
英文定义:“Allow an object to alter its behavior when its internal state changes.The object will appear to change its class.”。
中文定义:允许对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。
状态模式重要等级★★★☆☆ 状态模式难度等级★★★★☆
模式结构图
实例
实例说明
某酒店订房系统,可以将酒店房间设计为一个类,酒店房间对象将会存在已预定、已空闲、已入住状态。对于客户而已,这些状态的转换细节无需知道,不同状态的对象有不同的行为。如已经预定或者入住的房间不能再接受其他顾客的预定。
实例类图
代码实现
房间类Room