Está en la página 1de 2

Patrón Command en C#:

El patrón Command es un patrón de diseño de comportamiento que encapsula una solicitud como un objeto,
permitiendo parametrizar los clientes con diferentes solicitudes, encolar o registrar solicitudes y soportar
operaciones reversibles (deshacer)

using System;

// Command interface
interface ICommand
{
void Execute();
}
// Concrete commands
class LightOnCommand : ICommand
{
private Light _light;
public LightOnCommand(Light light)
{
_light = light;
}
public void Execute()
{
_light.TurnOn();
}
}

class LightOffCommand : ICommand


{
private Light _light;
public LightOffCommand(Light light)
{
_light = light;
}
public void Execute()
{
_light.TurnOff();
}
}

// Receiver
class Light
{
public void TurnOn()
{
Console.WriteLine("Light is on");
}
public void TurnOff()
{
Console.WriteLine("Light is off");
}
}

// Invoker
class RemoteControl
{
private ICommand _command;
public void SetCommand(ICommand command)
{
_command = command;
}
public void PressButton()
{
_command.Execute();
}
}

class Program
{
static void Main(string[] args)
{
Light light = new Light();
ICommand lightOn = new LightOnCommand(light);
ICommand lightOff = new LightOffCommand(light);

RemoteControl remote = new RemoteControl();

remote.SetCommand(lightOn);
remote.PressButton();

remote.SetCommand(lightOff);
remote.PressButton();
}
}

Ejemplo de Mundo Real del Patrón Command:

Un ejemplo de mundo real del patrón Command es la interfaz de un sistema de edición de texto o procesador
de palabras. Cada acción que el usuario realiza en el editor (como "copiar", "cortar", "pegar", "negrita",
"cursiva", "subrayado") puede ser encapsulada como un comando que implementa la interfaz ICommand

También podría gustarte