예제코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | using System; namespace CSharp_CommandPattern { abstract class Command { protected Receiver receiver; public Command(Receiver receiver) { this.receiver = receiver; } public abstract void Execute(); } class ConcreteCommand : Command { public ConcreteCommand(Receiver receiver) : base(receiver) { } public override void Execute() { receiver.Action(); } } class Receiver { public void Action() { Console.WriteLine("Called Receiver.Action()"); } } class Invoker { private Command _command; public void SetCommand(Command command) { this._command = command; } public void ExecuteCommand() { _command.Execute(); } } class Program { static void Main() { Receiver receiver = new Receiver(); Command command = new ConcreteCommand(receiver); Invoker invoker = new Invoker(); invoker.SetCommand(command); invoker.ExecuteCommand(); Console.ReadKey(); } } } | cs |
'Programming > Design Pattern' 카테고리의 다른 글
[C# 디자인패턴] 제15강 미디에이터 패턴 (0) | 2015.07.24 |
---|---|
[C# 디자인패턴] 제14강 이터레이터(반복자) 패턴 (0) | 2015.07.23 |
[C# 디자인패턴] 제12강 프록시 패턴 (0) | 2015.07.21 |
[C# 디자인패턴] 제11강 퍼사드 패턴 (0) | 2015.07.20 |
[C# 디자인패턴] 제10강 데코레이터패턴 (0) | 2015.07.18 |