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