Exemple #1
0
        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);
        }
Exemple #2
0
        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();
        }
Exemple #3
0
            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();
            }