You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
923 B

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();
}
}