设计模式
文章平均质量分 65
简单的绿竹
学无止境,活到老学到老。脚踏实地,一步一个脚印。坚持,用心,努力,加油!
展开
-
状态机编程 (三) 层次状态机实现
层次式状态嵌套可以通过从超类继承全部共同的东西,而得到新的行为,可以通过定义和现有状态的不同之处而快速定义新的状态,而不是每次从头开始创建每一个新的状态。层次式概念图:需要定义一个函数切换的宏,以进入不同层次的状态机:typedef void (*SM_FUN) (int, int);#define SUCCESS 0#define CHANG_SM(fun) ((SM_FUN)fun, SUCCESS)void sm_fun_level1(int state, in...原创 2022-02-24 17:14:11 · 597 阅读 · 0 评论 -
状态机编程 (二) 标准状态机实现
状态机的典型实现方法:嵌套的switch语句状态表面向对象的状态设计模式枚举状态和事件将状态和事件进行枚举:enum sm_state{ state1, state2, state3}enum sm_event{ event1, event2, event3}嵌套的switch语句实现状态机嵌套的switch可以用一维状态表来表现:当前状态 事件 监护条件 下一状态 动作state1 ...原创 2022-02-24 17:12:05 · 604 阅读 · 0 评论 -
状态机编程 (一) 状态机相关概念
基本概念状态机编程,又称事件驱动型编程。事件驱动程序需要一系列的精细粒度的事件处理函数来处理事件。这些事件函数必须处理的很快并返回主事件循环。所以其非常依赖于通过使用静态变量维护在从一个事件驱动函数转换到下一个执行函数时的执行上下文。大多数事件驱动型系统行为可以被分解为相对小数目的块,在每个单独的块的事件响应实际上取决于当前的事件类型。行为的快被称为状态,行为的改变对应着状态的改变,称为状态装换。状态机与流程图的区别在于,当状态机停在某个状态等待一个事件时,是空闲的;而流程图停留在...原创 2022-02-24 17:10:26 · 1894 阅读 · 0 评论 -
TCC 分布式事物最终一致性
https://blog.csdn.net/u010412301/article/details/78410933 简介TCC是由支付宝架构师提供的一种柔性解决分布式事务解决方案,主要包括三个步骤:TCC流程TCC的关键流程如下图(以下单和扣减库存为例子)Q: 预生成订单失败了,为什么要通过TCC执行预处理数据回滚?A: 可能预生成订单成功,但是接口返回失败(超时失败...转载 2018-09-04 13:21:43 · 479 阅读 · 0 评论 -
依赖注入原理(为什么需要依赖注入)
http://blog.csdn.net/coderder/article/details/518977210. 前言在软件工程领域,依赖注入(Dependency Injection)是用于实现控制反转(Inversion of Control)的最常见的方式之一。本文主要介绍依赖注入原理和常见的实现方式,重点在于介绍这种年轻的设计模式的适用场景及优势。转载 2017-09-25 15:42:21 · 262 阅读 · 0 评论 -
.net设计模式之观察者模式
http://m.blog.csdn.net/pkxiuluo01/article/details/49383783摘要 在今天的设计模式系列中我给大家带来了观察者模式,首先我会以一个生动的故事引入观察者模式的应用的场景,然后描述这个场景中出现的问题,最后我们提出观察者模式的解决方案,并给出C#语言实现的代码,最后以.net里的委托-事件方式的观察者模式作为结尾。转载 2017-08-26 17:59:28 · 439 阅读 · 0 评论 -
DDD领域驱动设计基本理论知识总结
http://www.cnblogs.com/netfocus/archive/2011/10/10/2204949.html领域驱动设计之领域模型加一个导航,关于如何设计聚合的详细思考,见这篇文章。2004年Eric Evans 发表Domain-Driven Design –Tackling Complexity in the Heart of So转载 2016-05-16 11:25:29 · 826 阅读 · 0 评论 -
ssh (MVC软件开发模式)
http://baike.baidu.com/link?url=zHUsQ0iNfiymwhFuP63sRdxDn5zqeGlMRiamkUfIRRr5JQmJfn12Sno6Hp19RUGSFvQAsjzHThHbMcMiuljHbCrc2lLNhSwkYC3d0aN5QneSSH(Struts,Spring,Hibernate) Struts进行流程控制,Spring进行业转载 2016-03-02 18:10:44 · 1827 阅读 · 0 评论 -
MVC,MVP,MVVM之异曲同工
http://www.360doc.com/content/14/0324/12/1355383_363264606.shtml转载 2016-01-03 09:48:55 · 365 阅读 · 0 评论 -
MVC,MVP 和 MVVM 的图示
http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html复杂的软件必须有清晰合理的架构,否则无法开发和维护。MVC(Model-View-Controller)是最常见的软件架构之一,业界有着广泛应用。它本身很容易理解,但是要讲清楚,它与衍生的 MVP 和 MVVM 架构的区别就不容易了。昨天晚上,我转载 2016-01-03 09:38:37 · 423 阅读 · 0 评论 -
设计模式(九)外观模式Facade(结构型)
http://blog.csdn.net/hguisu/article/details/7533759设计模式--外观模式Facade(结构型):1. 概述 外观模式,我们通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性。例子1:一个电源总开关可以控制四盏灯、一个风扇、一台空调转载 2015-09-05 09:03:54 · 255 阅读 · 0 评论 -
抽象工厂泛型解决方案
http://blog.163.com/xu_shuhao/blog/static/52577487201172210120776/通常我们在做VS多层架构的开发中都会用到数据访问的工厂 ,以此来生成数据访问实现层中具体类的对象。 如下面例子:using System.Configuration;using System.Reflection;using IDA转载 2015-09-08 23:27:30 · 1016 阅读 · 0 评论 -
"未能加载文件或程序集“XXX”或它的某一个依赖项。系统找不到指定的文件"的解决方案
http://blog.csdn.net/huangxiangec/article/details/32716331今天在写反射调用的时候失败了,经过调试和分析,最终解决了,下面我就具体说明。一,报错的现象未能加载文件或程序集“DalSQL”或它的某一个依赖项。系统找不到指定的文件。 说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错转载 2015-09-08 23:36:56 · 3261 阅读 · 0 评论 -
Assembly.Load,系统找不到指定的文件
http://blog.csdn.net/caesarx/article/details/7889469Assembly.Load("程序集名")Assembly.LoadFrom("程序集实际路径")反射Assembly.Load("程序集").CreateInstance("命名空间.类")在编程中,使用反射(IoC)是一个很好的架构。在.Net中,System转载 2015-09-08 23:34:13 · 4061 阅读 · 0 评论 -
聊聊并发——生产者消费者模式
http://www.infoq.com/cn/articles/producers-and-consumers-mode/在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题。该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。为什么要使用生产者和消费者模式在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。在多线转载 2015-02-11 17:54:48 · 461 阅读 · 0 评论 -
一句话评论设计模式六大原则
注:转自http://blog.csdn.net/jesse621/article/details/7216331原则,故名思议则是本质的意思。所谓擒贼先擒王,研究设计模式自然要先了解设计原则,所有的模式都是在这些原则的基础之上发展起来的,有的是侧重一个,有的是多个都有所涉及。看完设计模式之后,我感觉到每个模式都有这些原则的影子,还渗透着面向对象的三大属性,也觉得这些原则也都有相通之处,,正是转载 2014-04-29 14:04:24 · 403 阅读 · 0 评论 -
单例模式(C#实现)
http://hi.baidu.com/benzhan/item/6304481419d6360dd1d66dff 单例(单件)模式的五种实现。通过一个计数器的例子调用验证一下。把下面的代码直接拷进vs下,运行就可以了。(控制台应用程序)以后把剩余的设计模式有空儿就粘上来。using System;using System.Collections.Generic;转载 2013-12-10 18:20:29 · 490 阅读 · 0 评论