![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
架构
岳利-随笔
Java python go js wechat oracle mysql redis mongodb
展开
-
GOF设计模式-对象结构型模式-适配器模式
不兼容结构的协调—适配器模式我的笔记本电脑的工作电压是20V,而我国的家庭用电是220V,如何让20V的笔记本电脑能够 在220V的电压下工作?答案是引入一个电源适配器(ACAdapter),俗称充电器或变压器,有了 这个电源适配器,生活用电和笔记本电脑即可兼容在软件开发中,有时也存在类似这种不兼容的情况,我们也可以像引入一个电源适配器一样 引入一个称之为适配器的角色来协调这些存在不...原创 2019-07-15 16:12:44 · 250 阅读 · 0 评论 -
GOF设计模式-对象行为型模式-备忘录模式
撤销功能的实现——备忘录模式备忘录模式用于保存和恢复对象的状态,相信大家看过我前面的拙作就会想到原型模式也能保存一个对象在某一个时刻的状态,那么两者有何不同的呢?原型模式保存的是当前对象的所有状态信息,恢复的时候会生成与保存的对象完全相同的另外一个实例;而备忘录模式保存的是我们关心的在恢复时需要的对象的部分状态信息,相当于快照。备忘录模式大家肯定都见过,比如在玩游戏的时候有一个保存当前闯...原创 2019-07-31 15:22:10 · 167 阅读 · 0 评论 -
GOF设计模式-对象行为型模式-观察者模式
对象间的联动——观察者模式观察者模式是设计模式中的“超级模式”,其应用随处可见,在之后几篇文章里,我将向大家详 细介绍观察者模式。“红灯停,绿灯行”,在日常生活中,交通信号灯装点着我们的城市,指挥着日益拥挤的城市交 通。当红灯亮起,来往的汽车将停止;而绿灯亮起,汽车可以继续前行。在这个过程中,交 通信号灯是汽车(更准确地说应该是汽车驾驶员)的观察目标,而汽车是观察者。随着交通 信号灯的变化,...原创 2019-07-31 16:28:40 · 158 阅读 · 0 评论 -
GOF设计模式-对象行为型模式-状态模式
处理对象的多种状态及其相互转换——状态模式“人有悲欢离合,月有阴晴圆缺”,包括人在内,很多事物都具有多种状态,而且在不同状态下 会具有不同的行为,这些状态在特定条件下还将发生相互转换。就像水,它可以凝固成冰, 也可以受热蒸发后变成水蒸汽,水可以流动,冰可以雕刻,蒸汽可以扩散。我们可以用UML 状态图来描述H2O的三种状态,如图所示:在软件系统中,有些对象也像水一样具有多种状态,这...原创 2019-08-01 11:36:12 · 420 阅读 · 0 评论 -
GOF设计模式-对象行为型模式-策略模式
算法的封装与切换——策略模式写代码时总会出很多的if…else,或者case。如果在一个条件语句中又包含了多个条件语句就会使得代码变得臃肿,维护的成本也会加大,而策略模式就能较好的解决这个问题,本篇博客就带你详细了解策略模式。策略模式概述在策略模式中,我们可以定义一些独立的类来封装不同的算法,每一个类封装一种具体的算 法,在这里,每一个封装算法的类我们都可以称之为一种策略(Strate...原创 2019-08-01 15:46:34 · 269 阅读 · 0 评论 -
GOF设计模式-对象行为型模式-模板模式
在现实生活中,很多事情都包含几个实现步骤,例如请客吃饭,无论吃什么,一般都包含点 单、吃东西、买单等几个步骤,通常情况下这几个步骤的次序是:点单-->吃东西-->买单。 在这三个步骤中,点单和买单大同小异,最大的区别在于第二步——吃什么?吃面条和吃满 汉全席可大不相同。在软件开发中,有时也会遇到类似的情况,某个方法的实现需要多个步骤(类似“请客”),其 中有些步骤...原创 2019-08-01 17:24:26 · 191 阅读 · 0 评论 -
GOF设计模式-对象行为型模式-中介者模式
协调多个对象之间的交互——中介者模式QQ作为一款免费的即时聊天软件深受广大用户的喜爱,它已经成为很多人学 习、工作和生活的一部分。在QQ聊天中,一般有两种聊天方式: 第一种是用户与用户直接聊天,第二种是通过QQ群聊天。如果我们使用用户与用户直接聊天方式,一个用户如果要与别的用户聊天或发送文件,通常需要加其他用户为好友,用 户与用户之间存在多对多的联系,这将导致系统中用户之间的关系非常复杂,一...原创 2019-07-31 11:38:47 · 174 阅读 · 0 评论 -
GOF设计模式-对象行为型模式-迭代器模式
遍历聚合对象中的元素——迭代器模式迭代器模式概述在软件开发中,我们经常需要使用聚合对象来存储一系列数据。聚合对象拥有两个职责:一 是存储数据;二是遍历数据。从依赖性来看,前者是聚合对象的基本职责;而后者既是可变 化的,又是可分离的。因此,可以将遍历数据的行为从聚合对象中分离出来,封装在一个被 称之为“迭代器”的对象中,由迭代器来提供遍历聚合对象内部数据的行为,这将简化聚合对象 的设计...原创 2019-07-30 18:48:23 · 161 阅读 · 0 评论 -
GOF设计模式-对象行为型模式-解释器模式
自定义语言的实现——解释器模式 为人处事是一门大学问,察言观色、听懂弦外之音都是非常重要的,老板跟你说“XX你最近表现平平啊,还得要多努力”,如果你不当回事,平常对待,可能下次就是“XX,恩,你人还是不错,平常工作也很努力,但是我想这份工作可能不是很适合你…..”。又比如你老大说“XX,你最近表现不错,工作积极性很高啊!继续保持啊!”,你高兴乐呵着心想是不是老板要给我加工资了,可能你...原创 2019-07-30 17:05:34 · 205 阅读 · 0 评论 -
GOF设计模式-创建型模式-原型模式
对象的克隆-原型模式孙悟空可以用猴毛根据自己的形象,复制 (又称“克隆”或“拷贝”)出很多跟自己长得一模一样的“身外身”来。在设计模式中也存在一个 类似的模式,可以通过一个原型对象克隆出多个一模一样的对象,该模式称之为原型模式。先来看下它的定义:原型模式(PrototypePattern):使用原型实例指定创建对象的种类,并且通过拷贝这些 原型创建新的对象。原型模式是一种对象创建型模...原创 2019-07-11 16:14:02 · 207 阅读 · 0 评论 -
GOF设计模式-创建型模式-建造者模式
复杂对象的组装与创建-建造者模式没有人买车会只买一个轮胎或者方向盘,大家买的都是一辆包含轮胎、方向盘和发动机等多 个部件的完整汽车。如何将这些部件组装成一辆完整的汽车并返回给用户,这是建造者模式 需要解决的问题。建造者模式又称为生成器模式,它是一种较为复杂、使用频率也相对较低 的创建型模式。建造者模式为客户端返回的不是一个简单的产品,而是一个由多个部件组成 的复杂产品。软件公司...原创 2019-07-11 18:15:34 · 244 阅读 · 0 评论 -
GOF设计模式-对象结构型模式-享元模式
实现对象的复用-享元模式在软件系统中,有时候也会存在资源浪费的情况,例如在计算 机内存中存储了多个完全相同或者非常相似的对象,如果这些对象的数量太多将导致系统运 行代价过高,内存属于计算机的“稀缺资源”,不应该用来“随便浪费”,那么是否存在一种技术 可以用于节约内存使用空间,实现对这些相同或者相似对象的共享访问呢?答案是肯定,这 种技术就是我们本章将要学习的享元模式。举个栗子:围...原创 2019-07-18 17:43:35 · 171 阅读 · 0 评论 -
GOF设计模式-对象结构型模式-代理模式
间接访问对象-代理模式代理模式是常用的结构型设计模式之一,当无法直接访问某个对象或访问某个对象存在困难 时可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,所访问的真实对象与 代理对象需要实现相同的接口。根据代理模式的使用目的不同,代理模式又可以分为多种类 型,例如保护代理、远程代理、虚拟代理、缓冲代理等,它们应用于不同的场合,满足用户 的不同需求。代理模式概述近年来,...原创 2019-07-18 18:23:59 · 219 阅读 · 0 评论 -
GOF设计模式-对象结构型模式-桥接模式
处理多维度变化-桥接模式 在正式介绍桥接模式之前,我先跟大家谈谈两种常见文具的区别,它们是毛笔和蜡笔。假如 我们需要大中小3种型号的画笔,能够绘制12种不同的颜色,如果使用蜡笔,需要准备3×12= 36支,但如果使用毛笔的话,只需要提供3种型号的毛笔,外加12个颜料盒即可,涉及到的对 象个数仅为3+12=15,远小于36,却能实现与36支蜡笔同样的功能。如果增加一种新型号...原创 2019-07-16 14:27:24 · 262 阅读 · 0 评论 -
GOF设计模式-对象结构型模式-组合模式
树形结构的处理-组合模式树形结构在软件中随处可见,例如操作系统中的目录结构、应用软件中的菜单、办公系统中 的公司组织结构等等,如何运用面向对象的方式来处理这种树形结构是组合模式需要解决的 问题,组合模式通过一种巧妙的设计方案使得用户可以一致性地处理整个树形结构或者树形 结构的一部分,也可以一致性地处理树形结构中的叶子节点(不包含子节点的节点)和容器 节点(包含子节点的节点)。下面将学习这种用于...原创 2019-07-17 13:42:42 · 148 阅读 · 0 评论 -
GOF设计模式-对象结构型模式-装饰模式
拓展系统功能-装饰模式尽管目前房价依旧很高,但还是阻止不了大家对新房的渴望和买房的热情。如果大家买的是 毛坯房,无疑还有一项艰巨的任务要面对,那就是装修。对新房进行装修并没有改变房屋用 于居住的本质,但它可以让房子变得更漂亮、更温馨、更实用、更能满足居家的需求。在软 件设计中,我们也有一种类似新房装修的技术可以对已有对象(新房)的功能进行扩展(装 修),以获得更加符合用户需求的对象,使得对象具...原创 2019-07-17 14:39:41 · 178 阅读 · 0 评论 -
GOF设计模式-对象结构型模式-外观模式
深入浅出-外观模式外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端 与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦 合度,且客户端调用非常方便。外观模式概述:不知道大家有没有比较过自己泡茶和去茶馆喝茶的区别,如果是自己泡茶需要自行准备茶 叶、茶具和开水,如图1(A)所示,而去茶馆喝茶,最简单的方式就是跟茶馆服务员说想要...原创 2019-07-17 16:17:02 · 158 阅读 · 0 评论 -
GOF设计模式-对象行为型模式-职责链模式
“一对二”,“过”,“过”……这声音熟悉吗?你会想到什么?对!纸牌。在类似“斗地主”这样的 纸牌游戏中,某人出牌给他的下家,下家看看手中的牌,如果要不起上家的牌则将出牌请求 再转发给他的下家,其下家再进行判断。一个循环下来,如果其他人都要不起该牌,则最初 的出牌者可以打出新的牌。在这个过程中,牌作为一个请求沿着一条链在传递,每一位纸牌 的玩家都可以处理该请求。在设计模式中,我们也有一种专门用于处理...原创 2019-07-29 18:37:30 · 167 阅读 · 0 评论 -
GOF设计模式-对象行为型模式-命令模式
请求发送者与接收者解耦–命令模式装修新房的最后几道工序之一是安装插座和开关,通过开关可以控制一些电器的打开和关 闭,例如电灯或者排气扇。在购买开关时,我们并不知道它将来到底用于控制什么电器,也 就是说,开关与电灯、排气扇并无直接关系,一个开关在安装之后可能用来控制电灯,也可 能用来控制排气扇或者其他电器设备。开关与电器之间通过电线建立连接,如果开关打开, 则电线通电,电器工作;反之,开关关闭,...原创 2019-07-30 11:28:19 · 160 阅读 · 0 评论 -
GOF设计模式-对象行为型模式-访问者模式
操作复杂对象结构——访问者模式访问者模式概述访问者模式是一种较为复杂的行为型设计模式,它包含访问者和被访问元素两个主要组成部 分,这些被访问的元素通常具有不同的类型,且不同的访问者可以对它们进行不同的访问操 作。例如处方单中的各种药品信息就是被访问的元素,而划价人员和药房工作人员就是访问 者。访问者模式使得用户可以在不修改现有系统的情况下扩展系统的功能,为这些不同类型 的元素增加新的...原创 2019-08-01 18:20:31 · 152 阅读 · 0 评论