patterns/command/remoteundostatus/ceilingfanlowcommand.d

42 lines
884 B
D
Raw Permalink Normal View History

2022-12-05 07:38:19 +00:00
module command.remoteundostatus.ceilingfanlowcommand;
import command.remoteundostatus.command;
import command.remoteundostatus.ceilingfan;
class CeilingFanLowCommand : Command
{
CeilingFan ceilingFan;
int prevSpeed;
this(CeilingFan ceilingFan)
{
this.ceilingFan = ceilingFan;
}
void execute()
{
prevSpeed = ceilingFan.getSpeed();
ceilingFan.low();
}
void undo()
{
switch (prevSpeed)
{
case CeilingFan.HIGH:
ceilingFan.high();
break;
case CeilingFan.MEDIUM:
ceilingFan.medium();
break;
case CeilingFan.LOW:
ceilingFan.low();
break;
case CeilingFan.OFF:
ceilingFan.off();
break;
default: break;
}
}
}