举出一个使用命令模式的案例,并用C sharp语言实现
时间: 2023-03-28 10:03:39 浏览: 112
一个使用命令模式的案例是电视遥控器。当用户按下遥控器上的按钮时,遥控器会创建一个命令对象,并将其发送到电视机。电视机接收到命令对象后,会执行相应的操作,例如打开或关闭电视、切换频道等。
以下是使用 C# 语言实现的电视遥控器命令模式示例代码:
// 定义命令接口
public interface ICommand
{
void Execute();
}
// 定义具体命令类
public class TurnOnCommand : ICommand
{
private TV tv;
public TurnOnCommand(TV tv)
{
this.tv = tv;
}
public void Execute()
{
tv.TurnOn();
}
}
public class TurnOffCommand : ICommand
{
private TV tv;
public TurnOffCommand(TV tv)
{
this.tv = tv;
}
public void Execute()
{
tv.TurnOff();
}
}
public class ChangeChannelCommand : ICommand
{
private TV tv;
private int channel;
public ChangeChannelCommand(TV tv, int channel)
{
this.tv = tv;
this.channel = channel;
}
public void Execute()
{
tv.ChangeChannel(channel);
}
}
// 定义电视机类
public class TV
{
public void TurnOn()
{
Console.WriteLine("电视已打开");
}
public void TurnOff()
{
Console.WriteLine("电视已关闭");
}
public void ChangeChannel(int channel)
{
Console.WriteLine("切换到频道 " + channel);
}
}
// 定义遥控器类
public class RemoteControl
{
private ICommand command;
public void SetCommand(ICommand command)
{
this.command = command;
}
public void PressButton()
{
command.Execute();
}
}
// 使用命令模式控制电视机
TV tv = new TV();
RemoteControl remote = new RemoteControl();
remote.SetCommand(new TurnOnCommand(tv));
remote.PressButton(); // 打开电视
remote.SetCommand(new ChangeChannelCommand(tv, 5));
remote.PressButton(); // 切换到频道 5
remote.SetCommand(new TurnOffCommand(tv));
remote.PressButton(); // 关闭电视
输出结果:
电视已打开
切换到频道 5
电视已关闭
阅读全文