public void Test() { // 构造Receiver对象 Receiver receiver = new Receiver(); // 组织Command对象 ICommand command1 = new SetNameCommand(); ICommand command2 = new SetAddressCommand(); command1.Receiver = receiver; command2.Receiver = receiver; // 定义调用者,管理Command对象 Invoker invoker = new Invoker(); invoker.AddCommand(command1); invoker.AddCommand(command2); Assert.AreEqual <string>(string.Empty, receiver.Name); Assert.AreEqual <string>(string.Empty, receiver.Address); // 实际执行调用并检验调用后的效果 invoker.Run(); Assert.AreEqual <string>("name", receiver.Name); Assert.AreEqual <string>("address", receiver.Address); }
public static void Main(string[] args) { var container = new ContainerFactory().Create(); var exampleViewQuery = container.GetInstance <IExampleViewQuery>(); var commandDispatcher = container.GetInstance <ICommandDispatcher>(); var contextId = Guid.NewGuid(); var setNameCommand = new SetNameCommand { Name = "Name1" }; commandDispatcher.Dispatch(contextId, setNameCommand); setNameCommand = new SetNameCommand { Name = "Name2" }; commandDispatcher.Dispatch(contextId, setNameCommand); var setDateOfBirthCommand = new SetDateOfBirthCommand { DateOfBirth = DateTime.Now }; commandDispatcher.Dispatch(contextId, setDateOfBirthCommand); setNameCommand = new SetNameCommand { Name = "Name3" }; commandDispatcher.Dispatch(contextId, setNameCommand); var setDateOfBirth2Command = new SetDateOfBirth2Command { DateOfBirth = DateTime.Now.AddDays(1) }; commandDispatcher.Dispatch(contextId, setDateOfBirth2Command); var exampleView = exampleViewQuery.Get(contextId); ViewToConsole(exampleView); Console.ReadLine(); }
public void Test() { //构造Receiver对象 Receiver receriver = new Receiver(); //组织Command对象 ICommand command1 = new SetNameCommand(); ICommand command2 = new SetAddressCommand(); command1.Receiver = receriver; command2.Receiver = receriver; Invoker invoker = new Invoker(); invoker.AddCommand(command1); invoker.AddCommand(command2); invoker.Run(); Console.ReadLine(); }