行为型模式之状态模式
程序员文章站
2022-06-15 09:30:39
...
状态模式state
用于解决系统中复杂状态的转换,以及不同状态下行为的封装
1.场景
- 红绿灯,不同状态的灯有不同的行为
- 订单,待付款,待发货,已发货,派件,不同状态有不同的行为
2核心角色
- Context环境类,维护了一个State对象,定义并设置State的当前状态
- State抽象状态类
- ConcreteState具体状态类,封装了一个状态的行为
package com.liang.state;
public interface State {
void roomState();
}
//空闲
class Free implements State{
@Override
public void roomState() {
// TODO 自动生成的方法存根
System.out.println("房间空闲,欢迎预定");
}
}
//已预订
class Ordered implements State{
@Override
public void roomState() {
// TODO 自动生成的方法存根
System.out.println("房间已被预定");
}
}
//入住
class Live implements State{
@Override
public void roomState() {
// TODO 自动生成的方法存根
System.out.println("房客已入住");
}
}
package com.liang.state;
public class RoomContext {
private State state;
public void setState(State state) {
System.out.println("房间状态已修改");
this.state = state;
state.roomState();
}
}
package com.liang.state;
public class Client {
public static void main(String[] args) {
RoomContext c=new RoomContext();
c.setState(new Free());
c.setState(new Ordered());
}
}
上一篇: 成人用品市场掀起创业之风,利客情趣健康生活馆占领制高点!
下一篇: nuxtjs项目创建后的内容配置