设计模式
文章平均质量分 69
大苏打seven
这个作者很懒,什么都没留下…
展开
-
Java设计模式:ProtoType原型模式
本文是自己的学习笔记,主要参考以下资料-大话设计模式,程杰著,清华大学出版社出版-马士兵教育。原创 2022-07-17 17:14:07 · 309 阅读 · 0 评论 -
Java设计模式:Build模式
本文是自己的学习笔记,主要参考以下资料-大话设计模式,程杰著,清华大学出版社出版-马士兵教育。原创 2022-07-14 23:36:00 · 5095 阅读 · 2 评论 -
Java设计模式:fly weight 享元模式
本文是自己的学习笔记,主要参考以下资料- 大话设计模式,程杰著,清华大学出版社出版- 马士兵教育享元模式是为了重复利用对象。当我们键盘输入的时候,比如按下A,如果每按下一个A就会有一个对象产生,那这样的小对象就实在是太多了。为了不造成内存浪费,我们用一个池子将这些小对象装起来,当需要使用的时候就去池子里拿,而不是每次都创建一个新对象。享元这样的池化思想应用很普遍,比如线程池,数据库连接池等。所谓的fly weight就是说苍蝇的重量,泛指很小的单位。Java的字符串池就是很经典的享元模式的案例。3、与原创 2022-06-23 00:13:12 · 185 阅读 · 0 评论 -
Java设计模式:组合模式
本文是自己的学习笔记,主要参考以下资料- 大话设计模式,程杰著,清华大学出版社出版- 马士兵教育该模式比较简单而且应用场景也很单一。就是涉及到树状结构就可以想到用这个设计模式实现。该模式将节点分成两种类型。一种是,该节点可以有子节点。另一种就是,叶子节点不能有子节点。先定义接口然后是然后是这是它的UML类图。......原创 2022-06-22 23:36:22 · 149 阅读 · 0 评论 -
Java设计模式:观察者模式
本文是自己的学习笔记,主要参考以下资料- 大话设计模式,程杰著,清华大学出版社出版- 马士兵教育设想一个场景,用代码模拟照看小孩,当小孩哭的时候就安慰小孩。最直接的做法就是while循环,直到某个变量发生变化。当其它的线程调用方法时,程序自然就监控到孩子正在哭然后做对应的操作。但是这样不断地while循环很占资源。我们换一个版本的代码,在其中加入观察者。并且不是观察者主动观察被监视对象,而是被监视对象发生动作时主动通知观察者。这样就不用while循环监视孩子是否在哭,将处理逻辑和方法强绑定,只要调用原创 2022-06-22 22:40:49 · 491 阅读 · 0 评论 -
Java设计模式:责任链模式
本文是自己的学习笔记,主要参考以下资料- 大话设计模式,程杰著,清华大学出版社出版- 马士兵教育想象这样一个场景,在一个论坛上发表一篇文章。文章存入数据库之前,实际上是要经过一些处理的,比如处理特殊字符,处理敏感词,格式整理,内容分析等等。还比如,涨工资申请,第一先到主管,主管后到总监,再到总经理,最后到总裁批准。上面的这些情况都可以抽象成,一个请求需要被多个对象处理,处理对象如链条一般排序等待处理请求。每个对象都有自己的责任。这过程很像语句但这种写法非常糟糕,代码冗长不说,申请流程有变化代码也很难改变原创 2022-06-15 22:37:26 · 1510 阅读 · 2 评论 -
Java设计模式:抽象工厂
本文是自己的学习笔记,主要参考以下资料- 大话设计模式,程杰著,清华大学出版社出版- 马士兵教育工厂模式是为了方便生产单一的产品,而抽象工厂则是为了方便生产一个工厂。一个工厂可以看成是一个产品簇。比如一个人物类。这个人物类需要配套的武器类,攻击方式类,交通工具类等等。那么这些类就可以看成是一个产品簇。现在我们需要设计两种人物,一个是现代人,一个是魔法世界的人。对于现代人来说,武器类是枪,攻击方式是开火,交通工具则是汽车。对于魔法世界人来说,武器类是魔杖,攻击方式吟唱,交通工具则是扫帚。那现在就有两个产品簇原创 2022-06-01 23:00:46 · 875 阅读 · 0 评论 -
Java设计模式:单例模式
本文是自己的学习笔记,主要参考以下资料- 大话设计模式,程杰著,清华大学出版社出版 1、单例模式简介2、单利模式的实现方式2.1、饿汉1、单例模式简介就是我们希望一种类在整个系统里只有一个实例,比如各种service,manager, 这就是单例模式。2、单利模式的实现方式2.1、饿汉...原创 2022-05-24 23:06:15 · 152 阅读 · 0 评论 -
Java设计模式:模板模式
本文是我学习的总结,主要参考资料是大话设计模式,程杰著,清华大学出版社出版 1、模板模式的用途2、模板模式的UML图1、模板模式的用途模板模式是非常常见的设计模式,即使没学过设计模式的人在日常写代码中也会无意间用到模板模式。模板模式很好地体现了Java的多态性。现在有一个场景,我们需要定义多个行为,这些行为之间着很大的相似度,只有少量内容不同。比如有多个人写作业,步骤如下。System.out.println("抄题目:");System.out.println("1、李白的字() A、太白。原创 2020-09-11 17:37:30 · 109 阅读 · 0 评论 -
Java设计模式:策略模式
本篇文章是对自己学习的一个总结,学习资料来源是大话设计模式,程杰著,清华大学出版社出版。很多设计模式都遵从这高内聚,低耦合的理念,策略模式也不例外。当一个业务在执行时,有不同的执行策略,比如促销活动,可以打折,可以满减,也可以满到一定的金额换购商品,这些都是具体的促销行为。在代码中这些具体的促销行为就应该是不同的逻辑代码。简单地从前后端代码来分类,这些应该是属于后端代码,属于业务层。如果要坚持低耦合的设计理念,那前端在调用促销活动的代码时,应该尽可能简单,最好是只要一句话。策略模式就是为了满足以上原创 2020-05-24 16:00:05 · 263 阅读 · 1 评论 -
Java设计模式:代理模式
本篇文章是对自己学习的一个总结,学习资料来源是大话设计模式,程杰著,清华大学出版社出版代理模式其实还挺简单,我之前写过jdk动态代理(大家看看这篇博客里的静态代理,理解代理模式就变得非常容易),里面的静态代理其实就是代理模式。但是这段时间看了程杰的设计模式之后,才将代理模式给抽象化。然后也突然想到原来代理模式还可以这样用。代理模式UML类图如下所示。这个UML类图与书上的略有不同,因为我觉得代理模式重点是对realSubject的代理,代理的动作不一定要涉及到其他类,所以我将UML类图简化成现在这原创 2020-05-24 15:49:28 · 146 阅读 · 0 评论 -
Java设计模式:适配器模式
本篇文章是对自己学习的一个总结,学习资料来源是大话设计模式,程杰著,清华大学出版社出版。适配器模式的应用场景适配器一词是源自电子行业,比如苹果的充电器在官网上都是称为适配器。当然适配器并不是充电的意思,是电器的输入电压并不是完全统一的情况下——比如有些国家是使用110V,我们国家使用220V,而电脑的充电的输入电压是100V(假如是100V),为了让电脑正常使用,我们需要一个设备,不管是什...原创 2019-11-18 13:35:54 · 157 阅读 · 0 评论 -
Java设计模式:装饰模式
本篇文章是对自己学习的一个总结,学习资料来源是大话设计模式,程杰著,清华大学出版社出版。装饰模式要解决的问题对一个对象动态地添加功能。要注意是动态地添加,因为对一个对象添加新的功能,我们完全可以用代理,JDK代理等方法都可以对一个类进行增强。但是代理对类的增强是强耦合的,增强的方法一旦写完,那增强的多余功能的执行顺序是固定的,无法改变。而装饰模式则不同,它能动态地增强对象。比如我们有一...原创 2019-11-07 23:25:25 · 157 阅读 · 0 评论 -
Java设计模式:简单工厂模式
本篇文章是对自己学习的一个总结,学习资料来源是大话设计模式,程杰著,清华大学出版社出版。简单工厂现实中有很多生产车辆的工厂,种类有很多,比如救护车,越野车等等。为了便于管理和生产,这么多种类的车不会在同一个工厂内生成,而是一个工厂生产一个特定种类的车。对于用户来说,他们只需要知道车辆是从工厂里生产出来的就可以了,不需要具体知道是哪一个工厂。这时车辆工厂对于客户来说就是一个抽象的...原创 2019-07-10 16:41:53 · 126 阅读 · 0 评论