开发模式
文章平均质量分 83
开发模式
luckyone906
这个作者很懒,什么都没留下…
展开
-
C#设计模式之订阅发布模式详解(实例演示)5
/订阅者C(注意:构造函数中有注册的方法,所以每创建一次实例对应的实例默认都为发布者注册了一次)//创建订阅者(构造函数内部被注册到发布者了,所以后面不用再注册了)//创建订阅者(构造函数内部被注册到发布者了,所以后面不用再注册了)//订阅者收到发布者的通知后要执行的方法(被注册的方法)//订阅者收到发布者的通知后要执行的方法(被注册的方法)//订阅者收到发布者的通知后要执行的方法(被注册的方法)// //发布者通知,所有注册者的注册方法都被执行了。//发布者通知,所有注册者的注册方法都被执行了。原创 2024-05-23 22:57:37 · 288 阅读 · 0 评论 -
C#设计模式之订阅发布模式详解4
通过如上代码我们试着去解决我们第一处所说的问题,我们会发现使用event关键字后可以保护我们OnChange免受不必要的访问。如果说我们觉得如上的过程不是我们预期的,我们需要手动引发事件并处理异常,这时候我们可以使用Delegate基类中定义的GetInvoctionList来帮助我们实现这些。如上代码我们创建了一个发布者,并且我们调用委托进行创建我们匿名方法来订阅。运行如上代码后,大家会发现第一个订阅者已经执行成功了,第二个订阅者引发了异常,而第三个订阅者未被调用.这是一个很尴尬的事情.原创 2024-05-17 21:07:57 · 611 阅读 · 0 评论 -
C#中事件:发布订阅模式实例详解3
委托可以使用额外的运算符来组合.这个运算最终会创建一个新的委托,其调用列表是两个操作数的委托调用列表的副本连接.委托是恒定的,操作数委托创建后不会被改变,委托组合拷贝的是操作数的副本。在Main方法中,我们需要构建几个Rat对象和一个Cat对象,将Rat对象添加到Cat对象的集合中,调用Cat对象的Shout方法。委托存储的是一系列具有相同签名和返回值类型的方法的地址,调用委托的时候,委托包含的所有方法将被执行。(只是一个测试 不写的很详细了 还是拿猫和老鼠举例子 猫类和老鼠类 以及定义的委托的代码如下)原创 2024-05-17 21:03:42 · 566 阅读 · 0 评论 -
C#中事件:发布订阅模式实例详解2
Console.WriteLine("AEvent add被调用,value的HashCode为:" + value.GetHashCode());当事件被触发的时候,订阅者得到通知,而订阅者所提交的所有方法都会被执行。Console.WriteLine("触发对象:{0}, 保存信息:{1}", sender.ToString(), e.Information);Console.WriteLine("触发对象:{0}, 保存信息:{1}", info, sender.ToString());原创 2024-05-17 20:55:48 · 985 阅读 · 0 评论 -
C#发布订阅模式详解
Console.WriteLine($"{name}收到{work.name}的工作, 大概需要{work.workLoad/workSpeed}分钟, {boss.name}.");实现发布订阅模式的土方法:声明委托类,在发布者类中声明委托类成员,定义发布方法(事件触发),声明订阅类,在订阅类中声明订阅方法(绑定到订阅者的委托(事件)成员中)。Console.WriteLine($"\n{this.status} -> {status} 大家开始学习嗷");", works);// 调用事件触发方法.原创 2024-05-17 20:48:38 · 753 阅读 · 0 评论 -
C#中的事件(委托的发布和订阅、事件的发布和订阅、EventHandler类、Windows事件)实例详解,观察者(Observer)模式也称发布-订阅(Publish-Subscribe)模式
object类型的参数sender表示引发事件的对象,由于事件成员只能由类型本身(即事件的发布者)触发,因此在触发时传递给该参数的值通常为this。引发事件的对象称为事件的源或发送者。在事件发布和订阅的过程中,定义事件的类型(即委托类型)是一件重复性的工作,为此,.NET类库中定义了一个EventHandler委托类型,并建议尽量使用该类型作为事件的委托类型。事件是类的一种特殊成员:即使是公有事件,除了其所属类型之外,其他类型只能对其进行订阅或取消,别的任何操作都是不允许的,因此事件具有特殊的封装性。原创 2024-05-16 22:26:11 · 1244 阅读 · 0 评论 -
编程中事件驱动架构概述
现在的技术发展快,前后端不断涌现各种框架,我们恨不得把这些框架都用在自己的项目里才行,按实际出发,按需所用,适当的预留技术预研的空间。事件具有自己的属性,比如发生的时间、发生了什么、事件之间的关系、状态以及变化,事件也可以生成新的事件,根据不同的事件生成新的业务事件。事件溯源是一个特别的思路,它并不持久化实体对象,而是只把初始状态和每次变更的事件记录下来,并在内存中根据事件还原实体对象的最新状态,mysql主从备份用到的binary log以及redis的aof持久化机制,都可以认为是“事件溯源”的实现。原创 2024-05-16 21:53:32 · 441 阅读 · 0 评论 -
浅谈多核CPU、多线程、多进程
1.CPU发展趋势核心数目依旧会越来越多,依据摩尔定律,由于单个核心性能提升有着严重的瓶颈问题,普通的桌面PC有望在2017年末2018年初达到24核心(或者16核32线程),我们如何来面对这突如其来的核心数目的增加?编程也要与时俱进。笔者斗胆预测,CPU各个核心之间的片内总线将会采用4路组相连:),因为全相连太过复杂,单总线又不够给力。而且应该是非对称多核处理器,可能其中会混杂几个DSP处理器或流处理器。2.多线程与并行计算的区别(1)多线程的作用不只是用作并行计算,他还有很多很有益的作.原创 2020-05-12 22:08:51 · 2816 阅读 · 0 评论 -
并发和并行的概念
1.CPU的发展趋势: 核心数目依旧会越来越多,根据摩尔定律,由于单个核心性能提升有着严重的瓶颈问题,普通的PC桌面在2018年可能回到24核心。2.并发和并行的区别: 所有的并发处理都有排队等候,唤醒和执行这三个步骤,所以并发是宏观的观念,在微观上他们都是序列被处理的,只不过资源不会在某一个上被阻塞(一般是通过时间片轮转),所以在宏观上多个几乎同时到达的请求同时在被处理。如果是同一时刻到达的请求也会根据优先级的不同,先后进入队列排队等候执行。 并发与并行是两个既相似...原创 2020-05-12 22:07:28 · 56814 阅读 · 5 评论 -
多线程 ---并发与并行概念总结
软件开发,网站开发过程中经常有并发,并行这样的多线程处理与应用。因此,有必要对其进行了解与掌握。多线程:在了解线程之前,要先知道进程这个概念。进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。简单点说,进程就是执行中的程序活动,是一个活动的实体。多进程,就好比同时打开了Word,Excel和Visio,他们都是不同的程序运行活动,即多个进程同时启动而已,这个概念比较好理解。线程,是一个执行中的程序活动(即进程)的多个执行路径,执行调度的单位。线程依托于进程存在,在进程之下,可以共享进程原创 2020-05-12 22:06:01 · 1253 阅读 · 0 评论 -
简述单机,集群,分布式架构区别及联系
单机结构我想大家最最最熟悉的就是单机结构,一个系统业务量很小的时候所有的代码都放在一个项目中就好了,然后这个项目部署在一台服务器上就好了。整个项目所有的服务都由这台服务器提供。这就是单机结构。那么,单机结构有啥缺点呢?我想缺点是显而易见的,单机的处理能力毕竟是有限的,当你的业务增长到一定程度的时候,单机的硬件资源将无法满足你的业务需求。此时便出现了集群模式,往下接着看。集群结构集群模式在程序猿界有各种装逼解释,有的让你根本无法理解,其实就是一个很简单的玩意儿,且听我一一道来。单机处理到达原创 2020-05-12 22:04:43 · 622 阅读 · 0 评论 -
分布式系统架构简单介绍
目录:一、什么是分布式系统? 二、为什么要走分布式系统架构?三、系统如何进行拆分?四、分布式之后带来的技术挑战?一、什么是分布式系统?在谈分布式系统架构前,我们先来看看,什么是分布式系统?假设原来我们有一个系统,代码量30多万行。现在拆分成20个小系统,每个小系统1万多行代码。原本代码之间都是直接基于Spring框架走JVM内存调用,现在拆开来,将20个小系统部署在不同的机器上,然后基于分布式服务框架(比如dubbo)搞一个rpc...原创 2020-05-12 22:02:43 · 15230 阅读 · 3 评论 -
图解分布式系统架构演进之路
0、介绍本篇文章是在我看完《从零开始学架构》之后,以架构演变为主线,梳理了一下演变过程中出现的问题以及解决方案,文章中引用了这本书的一些内容和图片分布式和集群的概念经常被搞混,现在一句话让你明白两者的区别。分布式:一个业务拆分成多个子业务,部署在不同的服务器上集群:同一个业务,部署在多个服务器上例如:电商系统可以拆分成商品,订单,用户等子系统。这就是分布式,而为了应对并发,同时部署好几个用户系统,这就是集群1、单应用架构2、应用服务器和数据服务器分离单机负载越来越来,所以要将原创 2020-05-12 22:01:04 · 1012 阅读 · 0 评论 -
自动化设备的软件框架
自动化设备的软件主要由2部分组成:1是运动控制部分的软件实现,2是上位机处理数据并显示结果的软件实现。 运动控制的实现 第1部分的实现主要有2种方式,一种是用板卡控制的方式,一种是用PLC控制的方式。前者最大的优势是能够集成在上位机软件系统中,其使用和维护都很方便。而且,板卡控制也很灵活和稳定。后者使用PLC来实现运动控制的方式虽然逻辑简单,但是,从使用和维护起来,比如说切换料号,均没有前者方便。因此,我建议使用板卡控制的方式来实现运动控制。 上位机软件模块 在使用板卡实现运动控原创 2020-05-12 21:58:58 · 1984 阅读 · 0 评论 -
开发框架-概念
前言 做为一个程序员,在开发的过程中会发现,有框架同无框架,做起事来是完全不同的概念,关系到开发的效率、程序的健壮、性能、团队协作、后续功能维护、扩展......等方方面面的事情。很多朋友在学习搭建自己的框架,很多公司也在创建或使用自己的框架,网上开源的框架多如牛毛,每年新上线的各种框架也不知多少。而不停的重复造轮子,也让更多的朋友鸟枪换炮,越跑越快,工作效率越来越高。那么什么是框架呢? 什么是框架 度娘上说:框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件.转载 2020-05-12 21:57:30 · 3093 阅读 · 0 评论