如何打造属于自己的设计模式

设计模式 一般初级、中级、高级程序员都喜欢挂在嘴边的词。想必大家身边也有不少关于设计模式的书。设计模式是程序员的老前辈们根据自己的项目经验积累起来的解决方案集。所以,没必要把设计模式看成是硬性的东西,别人的经验参考一下即可,了解设计思路,为什么这种场景要用这种模式。也许是老一辈的程序员们确实比现在的程序员要强很多,毕竟现在网上很难找到自己摸索的设计模式了。

虫子不才就先抛砖引玉了。

简单介绍2个我项目中经常用到的模式

1.机器人插件模式

何所谓机器人插件,可以这样理解。你有一个机器人,但是需要这个机器人干什么并不确定。插入不同的卡片可以让机器人做出不同的行为。原理和aop类似,aop是站在系统级的角度,插件模式基于行为。

直接看代码

定义行为:

public static event EventHandler<RobotCancelEventArgs> DeleteingRobot;
        protected virtual void OnDeleteingRobot(RobotCancelEventArgs e)
        {
            EventHandler<RobotCancelEventArgs> tmp = DeleteingRobot;

            if (tmp != null)
                tmp(this, e);

        }

        public static event EventHandler<RobotCancelEventArgs> bhingRobot;
        /// <summary>
        /// 机器人行动前触发事件
        /// </summary>
        protected virtual void OnbhingRobot(RobotCancelEventArgs e)
        {
            EventHandler<RobotCancelEventArgs> tmp = bhingRobot;
            if (tmp != null)
                tmp(this, e);
        }

        public static event EventHandler<EventArgs> bhedRobot;
        /// <summary>
        /// 机器人行动后触发
        /// </summary>
        protected virtual void OnbhedRobot(EventArgs e)
        {
            EventHandler<EventArgs> tmp = bhedRobot;
            if (tmp != null)
                tmp(this, e);
        }

        public static event EventHandler<ServingEventArgs> ServingRobot;
        /// <summary>
        /// 调用机器人行为时触发
        /// </summary>
        protected virtual void OnServing(ServingEventArgs e)
        {
            EventHandler<ServingEventArgs> tmp = ServingRobot;
            if (tmp != null)
                tmp(this, e);
        }

行为实例:

public bool bhRobot(out string Message)
        {
            Message = string.Empty;
            RobotCancelEventArgs e = new RobotCancelEventArgs();
            OnServing(e);
            if (!e.Cancel)
            {
                var v = RobotService.bhRobot(this, out Message);

                if (v)
                {
                    OnbhedRobot(EventArgs.Empty);
                    return true;
                }
                return false;
            }
            else
            {
                Message = e.Message;
                return false;
            }
        }

注册卡片:

[Extension("", "1.0", "熬夜的虫子")]
    public class CardRobot
    {

        static CardRobot()
        {

            Robot.ServingRobot += new EventHandler<ServingEventArgs>(Comment_ServingDelegate);
        }

        static void Comment_ServingDelegate(object sender, ServingEventArgs e)
        {
            try
            {
              //do something
            }
            catch (Exception ex)
            {
                //Log4N.WarnLog("BadWordFilterExtension Exception:", ex);
            }
        }
    }

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索static
, 设计模式
, 机器人
, public
, tmp
eventhandler
mvc属于什么设计模式、mvc属于设计模式吗、打造自己的收入模式、打造 新模式、打造世界沙盒模式,以便于您获取更多的相关知识。

时间: 2024-09-17 03:42:59

如何打造属于自己的设计模式的相关文章

从手工打造到工厂设计模式的演变历程

自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onLayout源码详尽分析 自定义View系列教程04–Draw源码分析及其实践 自定义View系列教程05–示例分析 自定义View系列教程06–详解View的Touch事件处理 自定义View系列教程07–详解ViewGroup分发Touch事件 自定义View系列教程08–滑动冲突的产生及其处理

移动应用UI设计模式:用户友好的导航模式

文章描述:打造用户友好界面:移动UI中的6种主要导航模式. 作为一本简易的UI模式参考书,<移动应用UI设计模式>非常适合移动应用开发人员.UI设计师阅读,还没买的同学们可以看看这本书关于移动UI设计中导航模式的经验分享. 正如精良的设计一样,优秀的导航也大象无形.不管是浏览好友信息,还是租赁汽车,完美的导航设计能让用户根据直觉使用应用程序,也能让用户非常容易地完成 所有任务.一款应用的导航可以被设计成各种样式,但我想着重介绍6种主要的导航模式,也就是主菜单的导航模式. 跳板式 跳板式导航对操

打造完美网站布局设计

Claudio Guglieri 在纽约广告公司 B-Reel 任职总监,他撰写了本网站设计培训指南,旨在帮助您了解设计网站布局的全过程. 开始讲述设计网站布局的主题之前,我想先分享自己多年从事设计工作中看到的一些常见错误,尤其是"网站设计培训"中所述的实习生和新手们的通病. 本文罗列了打造完美网站布局的步骤,旨在涵盖开始新项目前以及项目设计过程中的各项应知应会,适合数字广告公司内就职的所有网站设计师新人阅读. 以下原则不仅包含各种设计细节,还提供了常规工作流程,从而帮助您出色地完成工

网站布局的全过程:20步打造完美网站布局设计

中介交易 SEO诊断 淘宝客 云主机 技术大厅 Claudio Guglieri 在纽约广告公司 B-Reel 任职总监,他撰写了本网站设计培训指南,旨在帮助您了解设计网站布局的全过程. 开始讲述设计网站布局的主题之前,我想先分享自己多年从事设计工作中看到的一些常见错误,尤其是"网站设计培训"中所述的实习生和新手们的通病. 本文罗列了打造完美网站布局的步骤,旨在涵盖开始新项目前以及项目设计过程中的各项应知应会,适合数字广告公司内就职的所有网站设计师新人阅读. 以下原则不仅包含各种设计细

巧用不对称设计打造有趣的网站页面

  对称与不对称似乎是网页设计过程中,一直要做的取舍.对称的和谐,和不对称的差异,都是创造好设计的必须的手段.但是对称通常都用的不错,但是不对称并非人人都运用娴熟.今天的文章,我们简单聊聊网页设计中的不对称设计~ 在绝大多数情形下,不对称的设计元素能从其他的元素中脱颖而出.这些不对称的设计看起来更富有活力,如果其中包含有按钮.控件或者链接的话,它们通常能获得比其他部位更多的关注. 今天我们就一起来仔细看看网页设计师们是如何通过对比.留白和布局来打造令人难忘的不对称设计.不对称的设计并不全是外部轮

Java开发中的23种设计模式详解(转)

Java开发中的23种设计模式详解(转) 设计模式(Design Patterns)                                   --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样.项目中合

【秒懂设计模式】总述及工厂模式

秒懂设计模式--总述及工厂模式      [前言]每次一说道"设计模式"总会给人一种误区,认为这些东西,只有那些"技术大牛"才会玩的东西.但是给我的感觉却恰恰相反,它更应该是"非牛人"玩的东西.为什么这么说呢?打个比方吧,"设计模式"就好比武术中的"固定招式",只有新手会有板有眼,一招一式的照着做,而那些真正的武林高手,都是"无招胜有招"的.当这些东西烂熟于心,得心应手时,对这些所谓的设

Java开发中的23种设计模式详解(推荐)_java

设计模式(Design Patterns)                                   --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样.项目中合理的运用设计模式可以完美的解决很多问题,每

详解JavaScript实现设计模式中的适配器模式的方法_基础知识

有的时候在开发过程中,我们会发现,客户端需要的接口和提供的接口发生不兼容的问题.由于特殊的原因我们无法修改客户端接口.在这种情况下,我们需要适配现有接口和不兼容的类,这就要提到适配器模式.通过适配器,我们可以在不用修改旧代码的情况下也能使用它们,这就是适配器的能力. 适配模式可用来在现有接口和不兼容的类之间进行适配,使用这种模式的对象又叫包装器(wrapper),因为它们是在用一个新的接口包装另一个对象. 从表面上看,适配器模式很像外观模式.它们都要对别的对象进行包装并改变其呈现的接口.二者的差