
设计模式
文章平均质量分 91
meiziziLOLOLO
这个作者很懒,什么都没留下…
展开
-
22种设计模式——策略模式
文章目录1. 概述2. 特点3. 实现1. 概述策略模式是一种行为设计模式, 它能让你定义一系列算法, 并将每种算法分别放入独立的类中, 以使算法的对象能够相互替换。先从问题引入:2. 特点优点缺点使用场景3. 实现UML类图Java实现...原创 2021-03-31 17:22:36 · 197 阅读 · 0 评论 -
22种设计模式——观察者模式
文章目录1. 概念2. 特点3. 实现1. 概念观察者模式是一种行为设计模式, 允许你定义一种订阅机制, 可在对象事件发生时通知多个 “观察” 该对象的其他对象。观察者模式的应用场景挺常见的,他还有另外一个名字,说出来你大概就懂了这个模式是在干什么的,叫做订阅——发布者模式,是不是突然就有想法了,我们下面先从具体使用场景来引入它。假如你有两种类型的对象: 顾客和 商店 。 顾客对商店里的iPhone最新版非常感兴趣, 而该产品很快将会在商店里出售。顾客可以每天来商店看看产品是否到货。 但如果商原创 2021-03-31 12:02:42 · 708 阅读 · 0 评论 -
22种设计模式——备忘录模式
文章目录1. 概述2. 特点3. 实现1. 概述2. 特点3. 实现原创 2021-03-30 15:13:49 · 239 阅读 · 0 评论 -
22种设计模式——中介者模式
文章目录1. 概述2. 特点3. 实现1. 概述中介者模式是一种行为设计模式, 能让你减少对象之间混乱无序的依赖关系。 该模式会限制对象之间的直接交互, 迫使它们通过一个中介者对象进行合作。顾名思义,从中介者模式的名字你大概就可以猜测出这个模式主要是实现类似于中介的一些功能,那中介有什么功能呢?起连接的作用,连接起双方,协调沟通。这个功能在代码中体现为调节两个类的依赖关系,那调节两个类的依赖关系有什么作用呢?很简单,为了解耦。前面简单乱推了中介者模式的作用,虽然有点勉强,但中介者模式确实就是用于解原创 2021-03-25 15:16:30 · 176 阅读 · 0 评论 -
22种设计模式——模板方法模式
文章目录1. 概述2. 特点3. 实现1. 概述模板方法模式是一种行为设计模式, 它在超类中定义了一个算法的框架, 允许子类在不修改结构的情况下重写算法的特定步骤。我们说一种设计模式简单,一种是说他的使用场景明确,不会轻易和别的模式弄混,比如单例模式;然而还有一种就是实现简单,模板模式正是后者,它实在不能再简单了,它其实就是抽象类的使用方法。从问题引入:假如你正在开发一款分析公司文档的数据挖掘程序。 用户需要向程序输入各种格式 (PDF、 DOC 或 CSV) 的文档, 程序则会试图从这些文件中抽原创 2021-03-24 10:39:24 · 240 阅读 · 0 评论 -
22种设计模式——责任链模式
文章目录1. 概念2. 特点3. 实现1. 概念责任链模式是一种行为设计模式, 允许你将请求沿着处理者链进行发送。 收到请求后, 每个处理者均可对请求进行处理, 或将其传递给链上的下个处理者。这种模式是一种很容易理解,且很实用的模式。话不多说,从问题引入:请假问题,在工作的时候请假其实是一件蛮复杂的事情,需要通过层层的审批。所以我们以张三为例,来讲一下他们公司的请假流程。现在张三他突然得了肠胃炎很急,需要请假一个下午,所以他把请假报告给了开发经理赵四,赵四见他很着急而且请假时间只有一个下午,所以原创 2021-03-22 22:05:41 · 233 阅读 · 0 评论 -
22种设计模式——访问者模式
文章目录1. 概述2. 特点3. 实现1. 概述2. 特点3. 实现原创 2021-03-18 15:59:33 · 237 阅读 · 0 评论 -
22种设计模式——代理模式
文章目录1. 概述2. 特点3. 实现1. 概述代理模式是一种结构型设计模式, 让你能够提供对象的替代品或其占位符。 代理控制着对于原对象的访问, 并允许在将请求提交给对象前后进行一些处理。代理模式,相信大家都不陌生啦,反射和spring里面就是用到了代理模式,不管你学没学过,大家再来深入了解一下代理模式,有一点还是需要说下,下面的代理模式实现是使用了Java给我们提供的JDK代理和Cglib代理。老惯例从问题引入。先来看下代理模式的概念:为某些对象提供一种代理以控制对这个对象的访问。为什么要控制某原创 2021-03-17 11:44:08 · 210 阅读 · 2 评论 -
22种设计模式——享元模式
文章目录1. 概述2. 特点3. 实现1. 概述享元模式是一种结构型设计模式, 它摒弃了在每个对象中保存所有数据的方式, 通过共享多个对象所共有的相同状态, 让你能在有限的内存容量中载入更多对象。从问题引入,假如你希望在长时间工作后放松一下, 所以开发了一款简单的游戏: 玩家们在地图上移动并相互射击。 你决定实现一个真实的粒子系统, 并将其作为游戏的特色。 大量的子弹、 导弹和爆炸弹片会在整个地图上穿行, 为玩家提供紧张刺激的游戏体验。尽管该游戏在你的电脑上完美运行, 但是你的朋友却无法长时间进行原创 2021-03-13 14:48:24 · 222 阅读 · 0 评论 -
22种设计模式——外观模式
文章目录1. 概述2. 特点3. 实现1. 概述2. 特点3. 实现原创 2021-03-12 22:38:07 · 181 阅读 · 1 评论 -
22种设计模式——组合模式
文章目录1. 概述2. 特点3. 实现1. 概述组合模式是一种结构型设计模式, 你可以使用它将对象组合成树状结构, 并且能像使用独立对象一样使用它们。这种设计模式也蛮简单的,说一种设计模式简单,怎么看的呢?看它的应用场景,应用场景很清晰就很简单,因为具体实现其实可以说是死代码,只要记住哪种场景可以使用哪种模式即可,代码实现倒是不必死记硬背,明确使用场景倒是首要的。组合模式的使用场景很清楚,它适用于多个对象之间的关系是树状的情况(程序员应该不会不知道树的吧),这种场景其实也挺常见的,比如我们的学校架原创 2021-03-11 15:30:47 · 432 阅读 · 1 评论 -
22种设计模式——装饰者模式
文章目录1. 概述2. 特点3. 实现1. 概述装饰模式是一种结构型设计模式, 允许你通过将对象放入包含行为的特殊封装对象中来为原对象绑定新的行为。注意,装饰模式和桥接模式很相似,没学过桥接模式的小伙伴,可以看这篇博客:22种设计模式——桥接模式。装饰者模式和桥接模式的出发点都是一样的,都是为了解决类爆炸的问题,先讲下这个问题:举个例子,比如星巴克卖咖啡,咖啡种类有:美式、拿铁、摩卡,同时咖啡还可以加料:牛奶、巧克力、糖。这时如果按普通的方式,那是不是就要同时存在9(3 X 3)个子类,如果新增一原创 2021-03-10 13:20:22 · 196 阅读 · 0 评论 -
22种设计模式——适配器模式
文章目录1. 概念2. 特点3. 实现1. 概念适配器模式是一种结构型设计模式, 它能使接口不兼容的对象能够相互合作。它和桥接模式有点像,都是连接两个不同维度的东西,但关键在于桥接模式是从设计之初就开始使用,而适配器模式更适用于遇到问题了再使用。老样子,还是先从问题引入概念。假如你正在开发一款股票市场监测程序, 它会从不同来源下载 XML 格式的股票数据, 然后向用户呈现出美观的图表。在开发过程中, 你决定在程序中整合一个第三方智能分析函数库。 但是遇到了一个问题, 那就是分析函数库只兼容 JSO原创 2021-03-09 01:00:06 · 287 阅读 · 3 评论 -
22种设计模式——桥接模式
文章目录原创 2021-03-07 11:46:19 · 245 阅读 · 0 评论 -
22种设计模式——建造者模式
文章目录1. 概述2. 特点3. 实现1. 概述生成器模式是一种创建型设计模式, 使你能够分步骤创建复杂对象。 该模式允许你使用相同的创建代码生成不同类型和形式的对象。在我看来,五种建造者模式,可以分为三种:原型模式、单例模式、其他三种建造者模式。这样分是因为原型和单例的特点和适用场景是很明显的,而其他三种建造者模式的特点和适用场景则很相似。2. 特点3. 实现...原创 2021-03-01 20:26:54 · 284 阅读 · 0 评论 -
22种设计模式——抽象工厂模式
文章目录1. 概述2. 特点3. Java实现1. 概述抽象工厂模式是一种创建型设计模式, 它能创建一系列相关的对象, 而无需指定其具体类。顾名思义,抽象工厂模式肯定和工厂模式有什么关系,实际上它是工厂模式的一种变种,它的核心内容和工厂模式差不多,都是实现了创建对象的解耦,不了解工厂模式的小伙伴可以看我写的这篇博客:工厂模式抽象工厂模式和工厂模式的不同点就在于它们针对的对象不一样,工厂模式针对的是位于同一产品等级的情况,抽象工厂模式则是同时针对产品等级和产品族的情况。什么是产品等级和产品族?这样说原创 2021-02-24 16:00:54 · 209 阅读 · 0 评论 -
22种设计模式——工厂模式
文章目录1. 概述1.1 目的1.2 解决的问题2. 特点3. 实现3.1 具体实例3.2 UML类图3.3 Java代码1. 概述工厂方法模式是一种创建型设计模式, 其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型。1.1 目的上面那段话其实就是工厂模式的目的,但说的比较抽象,这里来通俗地解释下。首先工厂模式是一种创建型模式,那很明显这个模式就是和对象的创建有关,所以对象的new操作就会比较特殊。在工厂模式中,对象不是直接在客户端中new出来,而是调用工厂类的工厂方法新建对象(也就原创 2021-02-22 22:40:04 · 769 阅读 · 0 评论 -
22种设计模式——原型模型
文章目录1. 概念2. 特点3. 实现1. 概念原型模式是一种创建型设计模式, 使你能够复制已有对象, 而又无需使代码依赖它们所属的类,即无需关心复杂的复制逻辑。目的:根据一个已有的对象,创建出另外一个一模一样的对象。解决的问题:复杂的复制逻辑如果你有一个对象, 并希望生成与其完全相同的一个复制品, 你该如何实现呢? 首先, 你必须新建一个属于相同类的对象。 然后, 你必须遍历原始对象的所有成员变量, 并将成员变量值复制到新对象中。不错! 但有个小问题。 并非所有对象都能通过这种方式进原创 2021-02-12 17:20:51 · 2032 阅读 · 2 评论 -
22种设计模式——单例模式
0. 文章目录1. 概念2. 特点3. 八种实现1. 概念顾名思义,单例模式也就是说只有一个实例,这种模式也是属于很常用的一种设计模式,也很容易理解。目的单例模式是一种创建型设计模式, 让你能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。解决的问题保证一个类只有一个实例。 为什么会有人想要控制一个类所拥有的实例数量? 最常见的原因是控制某些共享资源 (例如数据库或文件) 的访问权限。它的运作方式是这样的: 如果你创建了一个对象, 同时过一会儿后你决定再创建一个新对象, 此原创 2021-02-12 14:07:42 · 255 阅读 · 2 评论