设计模式
文章平均质量分 92
老胡写代码
这个作者很懒,什么都没留下…
展开
-
聊聊C#中的composite模式
聊聊设计模式中的组合模式以及它在C#中的使用原创 2022-06-18 22:38:44 · 249 阅读 · 1 评论 -
定制基于不同类型的访问方法——C#中的Visitor模式
文章目录写在前面模式演进史一个简单的例子使用了基本抽象的版本写在前面Visitor模式在日常工作中出场比较少,如果统计大家不熟悉的模式,那么它榜上有名的可能性非常大。使用频率少,再加上很多文章提到Visitor模式都着重于它克服语言单分派的特点上面,而对何时应该使用这个模式,这个模式是怎么一点点演讲出来的提之甚少,造成很多人对这个模式有种雾里看花的感觉,今天跟着老胡,我们一起来一点点揭开它的面纱吧。 模式演进史一个简单的例子现在假设我们有一个简单的需求,需要统计出一篇文档中的字数、词数原创 2021-10-14 21:25:35 · 159 阅读 · 0 评论 -
权力越大职责越大——C#中的职责链模式
大家好,欢迎来到老胡的博客,今天我们继续了解设计模式中的职责链模式。跟往常一样,我们还是从一个真实世界的例子入手,这样大家也对这个模式的应用场景有更深刻的理解。一个真实的栗子class Program{ static void Main(string[] args) { VacationApproveSystem system = new VacationApproveSystem(); system.HandleVacationRequest(new原创 2020-07-08 22:35:21 · 197 阅读 · 3 评论 -
让对象拥有状态——C#中的状态模式
大家好,老胡又在博客和大家见面了,在聊今天的主角之前,老胡先给大家讲一个以前发生的故事。真实的故事当老胡还是小胡的时候,跟随团队一起开发一款游戏。这款游戏是一款末日生存类游戏,玩家可以收集资源,两种,一种金子,一种铁。自身升级击杀敌人用资源合成装备项目开发的很顺利,我那时得到一个任务,是为游戏做一个新手教程,在这个教程里面,通过一系列步骤,引导玩家...原创 2020-07-01 20:40:16 · 1030 阅读 · 2 评论 -
如果人生也能存档——C#中的备忘录模式
大家好,老胡又和大家见面了。首先承认今天的博客有点标题党了,人生是没有存档,也没有后悔药的。有存档和后悔药的,那是游戏,不知道这是不是游戏让人格外放松的原因之一。今天恰逢端午放假,就让我们来试着做一个小游戏吧,顺带看看备忘录模式是如何在这种情况下面工作的。游戏背景这是一个简单的打怪游戏,有玩家,有怪兽,玩家作为主角光环,有如下三个特殊能力攻击怪兽有暴击几率有几率回避怪兽攻击可以自己治疗一定生命值游戏实现角色类角色基类首先是角色类,角色类提供玩家和怪兽最基本的抽象,比如血量、攻击力、攻原创 2020-06-25 10:09:32 · 1695 阅读 · 4 评论 -
生活中的设计模式——Adapter
设计模式虽然是编程领域的术语,但是在生活中也不乏类似的例子,应该说,精巧的设计都是相似的吧,今天我们就来谈一个在生活中很常见,很容易被使用的设计模式。原创 2020-06-20 22:19:25 · 329 阅读 · 0 评论 -
从一个计算器开始说起——C#中的工厂方法模式
C#中的属性提供程序集反射的功能,反射功能完美实现了程序集、类、方法的自我描述,利用属性,我们可以搞出一些很实用的设计。话不多说,我们看一个例子。原创 2020-06-13 23:13:12 · 405 阅读 · 0 评论 -
通讯基本靠吼——EventAggregator
俗话里,笑话一个地方穷,就经常说“通讯基本靠吼,交通基本靠走”。无独有偶,今天我们也要介绍一个类似于通讯基本靠吼的事件处理方式——EventAggragator。 传统事件处理方式现在回想一下,我们之前怎么完成事件处理?简单的三步。定义主体(被收听者)的暴露的事件类型。在订阅者中定义事件处理程序并关联到主体。主体触发事件。非常简单的结构,如下所示。订阅者依赖于主体。...原创 2019-11-22 23:09:27 · 2494 阅读 · 0 评论 -
从汉堡加料说起——浅谈C#中的Decorator模式
相信大家都在都在汉堡店吃过汉堡,有些汉堡店很有特色,推出了汉堡订制服务,即,可以在汉堡中加料,加肉饼,加生菜之类(有点类似我们本地的肥肠粉里面加冒结子)。更是让不少吃货大快朵颐,大呼过瘾,加6,7层肉饼的感觉简直不要太好。 那么大饱口福之后,让我们来思考一个问题,汉堡是要钱的,加的料,比如肉饼,生菜,也都是收费的,如果让我们来设计出一套类,计算客户买汉堡的消费,我们应该怎么做比较合适...原创 2019-11-16 17:06:49 · 328 阅读 · 0 评论 -
轻松实现记录与撤销——C#中的Command模式
Command模式属于行为模式,作为大名鼎鼎的23个设计模式之一,Command模式理解起来不如工厂模式,单例模式等那么简单直白。究其原因,行为模式着重于使用,如果没有编程实践,确实不如创造模式那么直白。我们先看看UML类图。估计很多同学看着图就晕了,那么多东西,Command和Concrete Command还好理解,那些Receiver和Invoker又是什么东西呢? 别着急...原创 2019-04-20 16:03:53 · 1833 阅读 · 0 评论 -
C#中的Builder模式
C#中的Builder模式设计模式中的Builder模式,又叫建造者模式,是一种常用的模式,它主要的作用是分离一个复杂对象的构建过程和复杂对象的表现形式,抽象出构建过程,这样可以使用相同的构建过程,配合依赖注入构建出不用的产品。 UML其中有两点需要注意。Director和Builder之间是聚合关系而不是合成关系,暗示Director不需要对Builder的生命周期负责,...原创 2019-02-23 15:49:53 · 2723 阅读 · 1 评论