设计模式之状态模式

1 状态模式:
电梯的各种状态,参考书籍:设计模式之禅

// 状态接口
interface TrafficLightState {
    void display();
    void action();
}

// 红灯状态类
class RedLightState implements TrafficLightState {
    @Override
    public void display() {
        System.out.println("红灯亮,停车等待");
    }

    @Override
    public void action() {
        System.out.println("执行红灯下的额外操作");
    }
}

// 黄灯状态类
class YellowLightState implements TrafficLightState {
    @Override
    public void display() {
        System.out.println("黄灯亮,准备就绪");
    }

    @Override
    public void action() {
        System.out.println("执行黄灯下的额外操作");
    }
}

// 绿灯状态类
class GreenLightState implements TrafficLightState {
    @Override
    public void display() {
        System.out.println("绿灯亮,可以通行");
    }

    @Override
    public void action() {
        System.out.println("执行绿灯下的额外操作");
    }
}

// 交通信号灯类(上下文类)
class TrafficLight {
    private TrafficLightState state;

    public void setState(TrafficLightState state) {
        this.state = state;
    }

    public void display() {
        if (state != null) {
            state.display();
            state.action();
        }
    }
}

// 示例用法
public class Main {
    public static void main(String[] args) {
        TrafficLight trafficLight = new TrafficLight();

        TrafficLightState redState = new RedLightState();
        trafficLight.setState(redState);
        trafficLight.display();
        // 输出:
        // 红灯亮,停车等待
        // 执行红灯下的额外操作

        TrafficLightState yellowState = new YellowLightState();
        trafficLight.setState(yellowState);
        trafficLight.display();
        // 输出:
        // 黄灯亮,准备就绪
        // 执行黄灯下的额外操作

        TrafficLightState greenState = new GreenLightState();
        trafficLight.setState(greenState);
        trafficLight.display();
        // 输出:
        // 绿灯亮,可以通行
        // 执行绿灯下的额外操作
    }
}

来自 :ChatGPt。

你可能感兴趣的:(android网络,java)