摘要: 命令模式用来解决一些复杂业务逻辑的时候会很有用,比如,你的一个方法中到处充斥着if else 这种结构的时候,用命令模式来解决这种问题就会让事情变得简单很多。 命令模式是封装的一个全新的境界:把方法调用封装起来。通过封装方法调用,可以把运算快封装成形,所以调用此运算对象不需要知道事情是如何进行的。通 阅读全文
posted @ 2022-03-28 15:05 Heath Leger 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 在asp.net core中实现进程内的CQRS时用mediatR是非常方便的,定义command,然后定义commandhandler,或者notification和notificationhandler。我们发现使用这个组件库可以将对象与对象间完全解耦,它不像命令模式那样,在ConcreteCo 阅读全文
posted @ 2022-03-28 15:00 Heath Leger 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 一、引言 在软件开发过程中,有些对象有时候会由于网络或其他的障碍,以至于不能够或者不能直接访问到这些对象,如果直接访问对象给系统带来不必要的复杂性,这时候可以在客户端和目标对象之间增加一层中间层,让代理对象代替目标对象,然后客户端只需要访问代理对象,由代理对象去帮我们去请求目标对象并返回结果给客户端 阅读全文
posted @ 2022-03-28 14:58 Heath Leger 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 一、引言 在软件系统中,当创建一个类的实例的过程很昂贵或很复杂,并且我们需要创建多个这样类的实例时,如果我们用new操作符去创建这样的类实例,这未免会增加创建类的复杂度和耗费更多的内存空间,因为这样在内存中分配了多个一样的类实例对象,然后如果采用工厂模式来创建这样的系统的话,随着产品类的不断增加,导 阅读全文
posted @ 2022-03-28 14:58 Heath Leger 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 一、引言 在软件系统中,有时需要创建一个复杂对象,并且这个复杂对象由其各部分子对象通过一定的步骤组合而成。例如一个采购系统中,如果需要采购员去采购一批电脑时,在这个实际需求中,电脑就是一个复杂的对象,它是由CPU、主板、硬盘、显卡、机箱等组装而成的,如果此时让采购员一台一台电脑去组装的话真是要累死采 阅读全文
posted @ 2022-03-28 14:57 Heath Leger 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 模板方法是一个方法,定义了算法的步骤,并允许子类为一个或多个步骤提供实现。 本例中用冲泡咖啡和茶的例子来说明: 上图说明了冲泡咖啡和茶的步骤,可以看出冲泡咖啡和茶的步骤差不多,很相似,先来看看没有应用模板方法的代码: Tea的代码类似,就不放了。他们的一个不好的地方在于算法散落在了各个类中,还有一点 阅读全文
posted @ 2022-03-28 14:56 Heath Leger 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 工厂模式包含三种,简单工厂模式,工厂方法模式,抽象工厂模式。这三种都是解决了一个问题,那就是对象的创建问题。他们的职责就是将对象的创建和对象的使用分离开来。 当我们创建对象的时候,总是会new一个对象,有错么?技术上,new没有错,毕竟是C#的基础部分,真正的犯人是我们的老朋友“改变”。以及他是如何 阅读全文
posted @ 2022-03-28 14:55 Heath Leger 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 前面分析了简单工厂模式和工厂方法模式,接着来看一下抽象工厂模式,他与工厂方法模式有一些相似的地方,也有不同的地方。 先来看一个不用工厂方法模式实现的订购披萨的代码: 对象依赖的问题:当你直接实例化一个对象时,就是在依赖他的具体类。接着上面的例子,如果在一个PizzaStore里面直接创建很多对象时, 阅读全文
posted @ 2022-03-28 14:55 Heath Leger 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 在程序的设计过程中很多时候系统会要求对于某个类型在一个应用程序域中只出现一次,或者是因为性能的考虑,或者是由于逻辑的要求,总之是有这样的需求的存在,那在设计模式中正好有这么一种模式可以来满足这样的要求。 在C#中实现单例模式可以通过定义私有的构造函数来实现,当然,还可以通过定义静态的构造函数来实现。 阅读全文
posted @ 2022-03-28 14:54 Heath Leger 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 简单概述一下23种设计模式 对于设计模式,在代码量多了之后,自然而然就会体会到设计模式的好处。 1. 单例模式 确保某一个类只有一个实例,并且自行实例化并向整个系统提供这个实例。 优点:减少系统开销,避免对资源多重利用。 缺点:没有接口,不利于扩展。 2. 工厂方法模式 定义一个用于创建对象的接口, 阅读全文
posted @ 2022-03-28 14:26 Heath Leger 阅读(31) 评论(0) 推荐(0) 编辑