public interface IControl
{
void Execute();
}
public class Tv
{
public void TurnOn()
{
Console.WriteLine("电视机打开了");
}
public void TurnOff()
{
Console.WriteLine("电视机关闭了");
}
public void SwitchChannel()
{
Console.WriteLine("电视机切换频道");
}
}
public class Light
{
public void TunrOn()
{
Console.WriteLine("电灯打开了");
}
public void TurnOff()
{
Console.WriteLine("电灯关闭了");
}
}
public class LighOn : IControl
{
private Light _light;
public LighOn(Light light)
{
_light = light;
}
public void Execute()
{
_light.TunrOn();
}
}
public class LightOff : IControl
{
private Light _light;
public LightOff(Light light)
{
_light = light;
}
public void Execute()
{
_light.TurnOff();
}
}
public class TvOn : IControl
{
private Tv _tv;
public TvOn(Tv tv)
{
_tv = tv;
}
public void Execute()
{
_tv.TurnOn();
}
}
public class TvOff : IControl
{
private Tv _tv;
public TvOff(Tv tv)
{
_tv = tv;
}
public void Execute()
{
_tv.TurnOff();
}
}
public class TvSwitch : IControl
{
private Tv _tv;
public TvSwitch(Tv tv)
{
_tv = tv;
}
public void Execute()
{
_tv.SwitchChannel();
}
}
public class RemoteControl
{
private IList<IControl> onCommands = new List<IControl>();
private IList<IControl> offCommands = new List<IControl>();
private IList<IControl> switchCommands = new List<IControl>();
public void AddOnCommand(IControl control)
{
onCommands.Add(control);
}
public void AddOffCommand(IControl control)
{
offCommands.Add(control);
}
public void AddSwitchCommand(IControl control)
{
switchCommands.Add(control);
}
public void PressOnButton(int number)
{
onCommands[number].Execute();
}
public void PressOffButton(int number)
{
offCommands[number].Execute();
}
public void PressSwitchButton(int number)
{
switchCommands[number].Execute();
}
}
class Program
{
static void Main(string[] args)
{
//命令的接收方
Light light = new Light();
Tv tv = new Tv();
//各种命令
LighOn turnLightOn = new LighOn(light);
LightOff turnLightOff = new LightOff(light);
TvOn turnTvOn = new TvOn(tv);
TvOff turnTvOff = new TvOff(tv);
TvSwitch switchTv = new TvSwitch(tv);
//RemoteConroller组装命令
RemoteControl control = new RemoteControl();
control.AddOnCommand(turnLightOn);
control.AddOnCommand(turnTvOn);
control.AddOffCommand(turnLightOff);
control.AddOffCommand(turnTvOff);
control.AddSwitchCommand(switchTv);
control.PressOnButton(0);
Console.ReadKey();
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有