static void Main(string[] args) { Action <object> toDo = new Action <object>(sInfo => Console.WriteLine("Receiver performed first action : {0} - {1} ", sInfo, DateTime.Now.ToLongTimeString())); Action <object> toDo1 = new Action <object>(sInfo => { string ss = sInfo.ToString(); if (sInfo is string) { ss = (string)sInfo; } Console.WriteLine("Receiver performed second action : {0} ", DateTime.Now.AddSeconds(ss.Length).ToLongTimeString()); }); CustomReceiverFactory recFactory = new CustomReceiverFactory(); CustomCommandFactory cmdFactory = new CustomCommandFactory(); CustomSenderFactory sendFactory = new CustomSenderFactory(); ICustomReceiver rec = recFactory.Create(toDo); ICustomCommand cmd = cmdFactory.Create(rec); ICustomSender send = sendFactory.Create(cmd); send.ExecuteCommand("step1"); send.ExecuteCommand("step2"); rec.DettachCommand(); rec.AttachCommand(toDo1, null); send.ExecuteCommand("this is dummy 1"); send.ExecuteCommand("this is dummy 2 again"); Console.WriteLine("quit?"); Console.ReadLine(); }
public ICustomCommand Create(params dynamic[] args) { ICustomReceiver aReceiver = args.OfType <ICustomReceiver>().FirstOrDefault(); ICustomValidator aValidator = args.OfType <ICustomValidator>().FirstOrDefault(); return(new CustomCommand(aReceiver, aValidator)); }
public void AttachTo(ICustomReceiver aReceiver, ICustomValidator aValidator = null) { Validator = (aValidator == null) ? new CustomValidator() : aValidator; if (!Validator.IsValidArgument(aReceiver)) { throw new ArgumentNullException("Command receiver cannot be null"); } Receiver = aReceiver; }
public void AttachTo(ICustomReceiver aReceiver, ICustomValidator aValidator = null) { Validator = (aValidator == null) ? new CustomValidator() : aValidator; if (!Validator.IsValidArgument(aReceiver)) { throw new ArgumentNullException("Command receiver cannot be null"); } Receiver = aReceiver; }
public void Dettach() { Receiver = null; Validator = null; }