package com.study.tank.sate; /** * @author xsj * @date 2022/11/1 15:42 */ public class Car { private String name; private CarSatesDict sate; private CarSate carSate; public Car(String name,CarSatesDict sate) { this.name = name; this.sate = sate; switch (sate){ case OPEN: this.carSate = new OpenSateCar(); break; case CLOSED: this.carSate = new ClosedCarSate(); break; case RUNNING: this.carSate = new RunCarSate(); break; case STOP: this.carSate = new StopCarSate(); break; } } void open() { carSate.open(); } void closed() { carSate.closed(); } void running() { carSate.running(); } void stop() { carSate.stop(); } }