大话设计模式
文章平均质量分 81
一些非常经典的解决方案和代码
康世行
CSDN博客专家、华为云享专家、Java领域新星创作者
展开
-
职责链 --- 应用篇(机房收费系统C#版本)
前言:职责链模式,重点是在链上。是 针对一个事件的一系列处理者,在一条职责链上有多个处理者可以对该事件进行处理操作。就类似上面图片的线,从机房收费系统来说。对于登录就有三个对应的处理者,管理员,操作员和顾客。继续处理者的设置:已上图为例,可以从左到右依次设置下一任处理者。也可以从右往左依次设置下一任处理者。这两种都可以,只要不是从中间开始就行。代码:客户端代码: /// <summary> /// 登录B层 /// </summary> ///原创 2020-11-22 18:52:13 · 1874 阅读 · 14 评论 -
设计模式-简单工厂-Java &C#语言上的区别
前言:简单工厂是大话设计模式当中最简单的一个模式,从开闭原则的角度来讲简单工厂不算是一个模式。之前使用c#写过简单工厂的代码,而大话设计模式这本书使用的编程语言也是c#实现的简单工厂。这次自己想换一个编程语言,验证下自己有没有真正理解简单工厂。代码:**计算类父类public abstract class Operation { private double _numberA=0; public double getNumberA(){ return _numberA; } public原创 2020-05-12 10:28:37 · 1539 阅读 · 7 评论 -
设计模式-工厂方法模式 VS简单工厂模式
定义:简单工厂模式简单工厂工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法是一个类的实例化延迟到其子类。个人理解:简单工厂根据客户端的选择进行动态的实例化对象,也就是根据用户的需求来实例化具体的对象。工厂方法定义一个用来创建对象的工厂接口,然后让具体的工厂子类来实现这工厂接口里的功能就可以了。所以每一个类的具体实例化都放到了,每一个具体的工厂里面实现。...原创 2019-11-27 11:35:40 · 1268 阅读 · 7 评论 -
抽象工厂-反射应用于总结
前言:利用反射来创建用户表,前面用抽象工厂,简单工厂。等等做过要实例化哪个类的选项,这次试用反射来实现。优点:1 减少耦合性2 方便替换3 符合开放封闭性原则格式:Assembly.Loga(“程序集名称”).CreateInstance(“命名空间.类名称”)解释:程序集是给反射起的名字类名是你要实例化的哪个具体类客户端的用法:抽象工厂 User ...原创 2019-11-20 20:46:16 · 1357 阅读 · 10 评论 -
设计模式-原型模式与模板方法模式的对比总结
前面几个设计模式几乎都是以代码的形式进行汇总,和解析具体的流程。这节原型模式和模板方法模式大致上我觉得是有很多相似的地方,所以就来总结下,那些地方相同。那些地方不同!原创 2019-11-12 21:00:56 · 2259 阅读 · 7 评论 -
设计模式-代理模式
前言:个人理解:代理模式和字体的表面意思一样,代替其他人做某件事情。官方解释 :为其他对象提供一种代理以控制对这个对象的访问代理的几种应用模式:1 远程代理为一个对象在不同的地址空间提供局部代表,这样就可以隐藏一个对象存在于不同地址空间的事实。2虚拟代理根据需要创建开销很大的对象,通过它来实例化需要很长时间的真实对象。3 安全代理用来控制真实对象访问时候的权限4 智能指引...原创 2019-11-11 20:39:33 · 1332 阅读 · 5 评论 -
设计模式-装饰模式
装饰模式和人穿衣打扮是差不多的,人类穿衣打扮都需要一个更衣室或者是商场的试衣间。都是在隐秘的空间里打扮后之后再展示出自己的搭配,而今天这装饰模式和试衣服是一样的。都需要在后台进行然后在展示时出来结果!原创 2019-11-10 20:23:31 · 1329 阅读 · 4 评论 -
设计模式-策略模式结合简单工厂
前言:策略模式可以定义一系列的算法,并且根据需求选择算法。算法之间还可以相互替换,不影响客户端的使用。需求:还是以商场的收银系统为例,这次添加一个需求。在上一个需求上加一个,打5折和打7折的需求。类图:实现:抽象策略类(没有具体的实现策略,而是把具体策略的共同方法抽象到里面)/// <summary> /// 现金收费的抽象类,父类。 /// </...原创 2019-11-07 17:12:00 · 1477 阅读 · 4 评论 -
简单工厂模式-商场收银系统
需求:做一个商场收银系统:营业员根据客户所购买商品的单价和数量,并且根据商场当前的打折优化活动向客户收费。类图:实现:业务逻辑: /// <summary> /// 现金收费的抽象类,父类。 /// </summary> abstract class CashSuper { /// <summa...原创 2019-11-06 15:29:06 · 1645 阅读 · 4 评论 -
大话设计模式-简单工程模式
前言:简单工厂模式是这23个模式里的第一个模式,也是比较简单和体现非常明确的一个模式。通过简单工厂可以非常好的体验出面向对象编程的好处,面向对象概念的重要性。也算是通过这个模式体验设计模式的好处把!目录概念:需求:实现:业务逻辑: 运算基类:运算具体的派生类:运算工厂:客户端:结果:概念:根据客户端的选择进行动态的实例化对象,也就是根据...原创 2019-11-06 14:52:07 · 1363 阅读 · 4 评论 -
工厂方法模式--实现计算器
前言:工厂方法模式名字上和前面第一个模式差不多,那就是简单工厂。其实这个计算器的例子,在前面使用简单工厂实现了一遍了。这次只是和使用相同的例子和工厂方法模式进行对比。在实现工厂方法模式的过程中发现了这个模式的优缺点!优点:是每一个类或者功能的独立性非常好。实现了可扩展,而不用修改其他的类。缺点:每增加一个产品就需要增加一个产品工厂的类。目录类图:代码: form窗...原创 2019-11-04 21:14:14 · 5212 阅读 · 7 评论