
设计模式
文章平均质量分 60
路人丁.
这个作者很懒,什么都没留下…
展开
-
设计模式(行为型)- 访问者模式
假设我们从网站上爬取了很多资源文件,它们的格式有三种:PDF、PPT、Word。我们现在要开发一个工具来处理这批资源文件。这个工具的其中一个功能是,把这些资源文件中的文本内容抽取出来放到 txt 文件中。实现这个功能并不难,不同的人有不同的写法,其中一种代码实现,ResourceFile 是一个抽象类,包含一个抽象函数 extract2txt()。PdfFile、PPTFile、WordFile 都继承 ResourceFile 类,并且重写了 extract2txt() 函数。...原创 2021-07-14 23:01:12 · 123 阅读 · 0 评论 -
设计模式(行为型)- 命令模式
命令模式是一个高内聚的模式,其定义为:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请 求排队或者记录请求日志,可以提供命令的撤销和恢复功能。UML:示例:多功能遥控器public interface Command { void exec(); void undo();}public class NullCommand implements Command { @Override public void exec() {.原创 2021-07-14 20:49:44 · 79 阅读 · 0 评论 -
设计模式(结构型) - 代理模式
在有些情况下,一个客户不能或者不想直接访问另一个对象,这时需要找一个中介帮忙完成某项任务,这个中介就是代理对象。例如,购买火车票不一定要去火车站买,可以通过 12306 网站或者去火车票代售点买。又如找女朋友、找保姆、找工作等都可以通过找中介完成。在软件设计中,使用代理模式的例子也很多,例如,要访问的远程对象比较大(如视频或大图像等),其下载要花很多时间。还有因为安全原因需要屏蔽客户端直接访问真实对象,如某单位的内部数据库等。代理模式分为静态代理,动态代理静态代...原创 2021-07-12 23:10:43 · 213 阅读 · 0 评论 -
设计模式(结构型)- 门面模式
我们都知道类与类之间的耦合越低,那么可复用性就越好,如果两个类不必彼此通信,那么就不要让这两个类发生直接的相互关系,如果需要调用里面的方法,可以通过第三者来转发调用。外观模式非常好的诠释了这段话。外观模式提供了一个统一的接口,用来访问子系统中的一群接口。它让一个应用程序中子系统间的相互依赖关系减少到了最少,它给子系统提供了一个简单、单一的屏障,客户通过这个屏障来与子系统进行通信。通过使用外观模式,使得客户对子系统的引用变得简单了,实现了客户与子系统之间的松耦合。但是它违背了“开闭原则”,因为...原创 2021-07-12 20:01:58 · 158 阅读 · 0 评论 -
设计模式(结构型)- 组合模式
组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。意图:将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。主要解决:它在我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元原创 2021-07-11 22:57:44 · 105 阅读 · 0 评论 -
设计模式(结构型)- 装饰器模式
动态地给一个对象添加一些额外的职责,就增加功能来说,装饰者模式比生成子类更为灵活。——《设计模式:可复用面向对象软件的基础》UML图:下面我们以人为基础说明装饰器模式,人可以有房子(有房的人),车子(有车的人),票子(有钱的人)....public interface Man { String manDesc();...原创 2021-07-11 11:54:53 · 110 阅读 · 0 评论 -
设计模式(结构型)- 桥接模式
桥接模式,又叫桥梁模式,顾名思义,就是有座“桥”,那这座桥是什么呢?就是一条聚合线(下方UML图),比如我们下面会举的例子,手机有手机品牌和手机游戏等等,每个手机品牌都有多款游戏,那是不是二者之间就是聚合关系了,这是合成/聚合复用原则的体现,当我们发现类有多层继承时就可以考虑使用桥接模式,用聚合代替继承。 桥接模式(Bridge),将抽象部分与它的实现部分分离,使它们都可以独立地变化。UML结构图如下:示例:画图,这里有一个画笔,可以画正方形、长方形、圆形。同时可以给图形上色,...原创 2021-07-11 10:13:43 · 247 阅读 · 0 评论 -
设计模式(结构型)- 适配器模式
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,公司现有一个开放接口api功能,但是新的公司接入时需要增加或则减少某些数据那么就需要进行新的开发,我们为了复用之前的代码,那么我们就需要一个中间类来将已有的实现做一些转换,这个类就是适配器类。分类类适配器 对象适配器 接口适配器类适配器...原创 2021-07-10 20:55:25 · 88 阅读 · 0 评论 -
设计模式(2)- 工厂模式
工厂模式作为建造类型模式的一种,工厂顾名思义就是创建产品,根据产品是具体产品还是具体工厂可分为简单工厂模式和工厂方法模式,根据工厂的抽象程度可分为工厂方法模式和抽象工厂模式。该模式用于封装和管理对象的创建,是一种创建型模式。本文从一个具体的例子逐步深入分析,来体会三种工厂模式的应用场景和利弊。1. 简单工厂模式简单工厂由名称就知道最为简单,其只对具体的产品做一层很薄的封装,根据指定的类型来创建对象,idea画出的UML类型:手机接口规范:package com.pat...原创 2021-07-09 23:52:50 · 208 阅读 · 0 评论 -
设计模式(1) - 单例模式
单例模式在平常业务及框架开发中使用非常广泛,例如jdk中的Runtime,JVM类,Mybatis中SessionFactory,一些开放文档如阿里云OSS上传客户端等等这些相对配置属性较多,不轻易改变的类常常采用单例模式设计。 单例模式有多种写法1.恶汉式//恶汉式public class VillainMode { private static final VillainMode instance = new VillainMode(); ...原创 2021-07-03 12:06:10 · 89 阅读 · 0 评论 -
设计模式(0) - 七大设计原则
一天进步一点点二十四天学完设计模式设计模式的目的原则,其实就是在编程时,应当遵守的原则,也是各种设计模式的基础(即:设计模式为什么这样设计的依据) ,设计模式是为了程序具有更好的代码的重用性 可读性 可扩展性(可维护性) 可靠性(增加新功能后对...原创 2021-06-30 22:24:24 · 149 阅读 · 0 评论