0
是否有可能在运行时根据当前状态变形对象并保留所有过去的信息?如何在运行时变形对象,同时保留过去的信息?
说我有以下的(伪代码):
class Vehicle {
int state, lat, long;
void run();
}
class Plane : Vehicle {
void run() {fly();}
}
class Car : Vehicle {
void run() {drive();}
}
class Boat : Vehicle {
void run() {navigate();}
}
void main() {
// Setup code goes here
Vehicle vehicle = new Vehicle();
while(true) {
switch(vehicle->state){
case(1): vehicle = new Plane();
case(2): vehicle = new Car();
case(3): vehicle = new Boat();
}
}
}