当前位置:网站首页 / C#开发 / 正文

[AYJS] wpf设计模式学习[18]-命令模式-Command

时间:2016年05月27日 | 作者 : aaronyang | 分类 : C#开发 | 浏览: 1064次 | 评论 0

场景:下多个命令,然后组合,其中可以撤销命令,通知命令去执行

我的实现

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace StrategyMo
{
    public abstract class Command
    {
        protected Command_Execute_Person executor;
        public Command(Command_Execute_Person person)
        {
            this.executor = person;
        }
        public abstract void Execute();
    }
    public class ConcreteCommand : Command
    {
        public ConcreteCommand(Command_Execute_Person person) : base(person) { }
        public override void Execute()
        {
            executor.Action();
        }
    }

    public class Command_Sender
    {
        private Command command;
        public void SetCommand(Command cmd) {
            this.command = cmd;
        }
        public void ExecuteCommand() {
            command.Execute();
        }
    }

    public class Command_Execute_Person
    {
        public void Action()
        {
            Console.WriteLine("执行命令");
        }
    }
    
}

客户端

            //准备
            Command_Execute_Person p = new Command_Execute_Person();
            Command c = new ConcreteCommand(p);
            //开始
            Command_Sender i = new Command_Sender();
            i.SetCommand(c);
            i.ExecuteCommand();

效果:



====================www.ayjs.net       杨洋    wpfui.com        ayui      ay  aaronyang=======请不要转载谢谢了。=========










推荐您阅读更多有关于“C#设计模式,”的文章

猜你喜欢

额 本文暂时没人评论 来添加一个吧

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

  查看权限

抖音号:wpfui,可以看到我的很多作品效果

AYUI8社区版Github地址:前往获取

作者:杨洋(AaronYang简称AY,安徽六安人)目前是个人,还没公司AY唯一QQ:875556003和AY交流

高中学历,2015年1月17日开始,兴趣学习研究WPF,目前工作繁忙,不接任何活

声明:AYUI7个人与商用免费,源码可购买。部分DEMO不免费.AY主要靠卖技术服务挣钱

不是从我处购买的ayui7源码,我不提供任何技术服务,如果你举报从哪里买的,我可以帮你转正为我的客户,并送demo

查看捐赠

AYUI7.X MVC教程 更新如下:

第一课 第二课 程序加密教程

兼容XP到win10,vs2015/2017/2019,最新AYUI:7.6.5.5

vs2015 企业版密钥HM6NR-QXX7C-DFW2Y-8B82K-WTYJV

vs2017 企业版密钥NJVYC-BMHX2-G77MM-4XJMR-6Q8QF

标签列表