Documentos de Académico
Documentos de Profesional
Documentos de Cultura
9-Patron Command
9-Patron Command
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();
}
}
// 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);
remote.SetCommand(lightOn);
remote.PressButton();
remote.SetCommand(lightOff);
remote.PressButton();
}
}
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