自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 收藏
  • 关注

原创 如何证明人类不是程序?这个世界是虚拟的吗?

最近突然有一个这样的想法,因为学习了许多语言,例如c,c++,python,java等,虽然不能算是精通但是也产生了很多的想法,比如说:我们人类是真实存在的吗?有什么证据可以表明这个世界,这个宇宙不是虚拟出来的?对于一个普通人来说,准确来说是没有接触过编程的人来说,会对这个问题非常的不解,但对于程序员来说,这个是可能存在的事件。世界上第一台可编程的计算机能够执行每秒两次的浮点运算,现代...

2020-01-24 16:35:30 6547 9

转载 IP子网划分基础完整版教程(如何计算子网数和主机数?)

所以,有效子网要减去第一个子网跟最后一个子网,也称为全0子网和全1子网, 在一些老的设备上是不支持的,所以不能用,当然,现在的设备都不存在这个问题,都能用。广播地址:用于向网络中的所有主机发送数据的特殊地址。IP地址共32个bit位,为了便于记忆,我们将它转换成10进制数,如:192.168.1.1 ,我们称之为点分十进制数。在一个网段中,最小地址保留为网络地址,此地址的主机部分的每个主机位均为0。主机数:2*M-2,M为主机部分剩下的位数(主机位),减去2,因为网络地址跟广播地址不能用。

2024-03-18 15:45:31 1824

转载 如何做数据平滑迁移:双写方案

数据迁移数据迁移指的是将一批数据从同构存储系统(如MySQLA到MySQLB)或异构存储系统(如MySQL-MongoDB)间搬运迁移。最简单的数据迁移方式是通过脚本或定时任务将数据进行搬运,亦或是通过类似canal之类的工具进行数据同步。在线迁移:迁移应该是在线的迁移,也就是在迁移的同时还会有数据的写入数据一致性:数据应该保证完整性,也就是说在迁移之后需要保证新的库和旧的库的数据是一致的。

2024-03-06 23:52:46 354

原创 刘谦魔术我用代码还原了,魔术尽头是数学,数学尽头是神学!

接下来刘谦魔术需要自问自己是南方人还是北方人,南方人把最上面1张牌放中间,北方人放2张,不知道的放3张hh。这一步其实没有什么所谓,因为我们需要的牌依然在最后一张,前面的牌都是要扔掉的,所以无关顺序,这个南北方人相当于迷惑我们的操作。然后藏起来最上面那张,所以这个步骤之后,无论你之前选择怎么压,藏起来的要么是4(1)要么是4(2)。洪爵这里藏起来的是4(1)男生和女生所需要的牌都在奇数位置,接下面就是保留好运,丢掉霉运,保留的是。那么 见证奇迹的时刻,需要7次把最上面的牌放到最下面,真的见证时刻了,

2024-02-10 18:12:57 556

原创 实际工作中能使用到Supplier的场景有哪些(防御性编程)?

这样我们用了同一个构造函数进行初始化,没有额外的去做一些判断是否要生成对象,只需要关注业务逻辑本身,在需要的时候去get大对象即可,大对象的初始化也会在这个时候做,同时这样也有好处,如果在你不需要使用大对象的时候,可以提高初始化的性能。上面的DTO有一个Supplier类型的属性,DTO对象不需要关心msg内部实现,只需要知道msg.get()能得到想要的东西即可,所以我再次重申下,我认为Supplier是编写者都希望我们去使用的一套封装方式,封装具体实现,只通过一个get获取想要的东西即可。

2024-02-03 12:59:34 751

原创 如何在Java中加载两个类全限定名相同的类?

首先我们创建一个Java项目,洪爵命名为Main,然后创建包路径com.knight,在该包路径下创建一个A类,在这个A类里,我们创建一个public方法,返回一个String,方法名为getVersion()。比如说在某个Java项目中com.knight包下有一个类A,那么这个类A的类全限定名就为:com.knight.A。首先如果洪爵什么都不做,直接去import这两个类,无疑是不行的,大家肯定都尝试过,那这里的解法就需要提到双亲委派模型了。如果不可以,是否就代表代表类的唯一路径就是类全限定名?

2024-01-20 11:30:00 1378 3

原创 商业和开源的faas伸缩性比较

Azure function和openfaas都是用于构建无服务的工具,本实验其实有非常多的局限性,所以只能做参考。因为尽管openfaas和azure function都有着伸缩性,可以根据当前请求量等做自动缩放,但是azure functions毕竟是一个完全托管的服务,并且有着强大的azure平台支撑,是按照流量计算消费,所以伸缩性在理论上可以理解成无限大。

2023-04-04 06:26:27 409 1

原创 部署+使用集群的算力跑CPU密集型任务

我先在开头做一个总结,表达我最终要做的事情和最终环境是如何的,然后我会一步步说明我是如何搭建。尝试如何使用多台机器的算力共同跑一个CPU密集型或者GPU密集型的任务。这里以CPU密集型为例子。在多台机器搭建MPI环境,构建MPI集群共同跑1亿个数据的快排任务,并且对机器的各种指标(如CPU,内存,磁盘,网络等)做可视化监控。我这里选择的云平台是Microsoft Azure,使用两台机器做实验,两台操作系统信息一致为:Linux (ubuntu 18.04) Standard B2ms (2 vcpu,8

2023-03-22 23:19:41 2718

原创 最近爆火的ChatGPT到底能否通过图灵测试的改进版-WS挑战?

在我看来啊,ChatGPT没有完全通过Winograd Schema Challenge,但不可否认的是,经过这么多年的发展,现在的AI的确渐渐有了思考的这个动作。我们更想知道的是,AI是否有思考的这个动作,因此有了图灵测试的改进版:Winograd Schema Challenge。这里我一共找了三组话,从易到难,每组话里有两个句子,以此来判断ChatGPT是否具有思考的动作。但是值得注意的是,在第一组的第二句话,它回答正确了,并且给出了思考的过程。市议员拒绝了示威者的许可,因为他们害怕暴力。

2022-12-13 08:08:52 4882

原创 操作系统最核心的概念-进程(下)

为了让大家了解、掌握的相关知识,这个不管是面试或者平常工作中都需要接触的重头戏。洪爵以问答的方式把常见的、易错的、大家想知道的问题做个收集 + 解答。

2022-08-09 01:46:47 337

原创 操作系统最核心的概念-进程(上)

为了让大家了解、掌握进程的相关知识,这个不管时面试或者平常工作中都需要接触的重头戏。洪爵以问答的方式把常见的、易错的、大家想知道的问题做个收集 + 解答。Q1:进程的重要性操作系统中最核心的概念是进程。进程是对正在运行程序的一个抽象,操作系统其他的所有内容都是围绕着进程的概念展开的。Q2:为什么我能在同一时间操作多个应用(进程)?大家可能无意识的发现,现代的计算机经常能在同一个时间里做很多事情。我们举一个例子,假设服务器可使用的CPU只有一个,当客户端发起请求,需要读取某个数据时,服务器接收了请求,

2022-05-03 01:01:37 639

原创 发现教课书中错误,谢希仁给我亲笔签名

今天收到出版社给我发的《计算机网络》第八版,这本书也是我大学期间上计算机网络使用的教科书,洪爵在今年七月份写有关于TCP方面的文章时,参考了我的教科书,细看之下,发现里面存在一些自相矛盾的地方,于是联系了出版社,出版社联系了谢希仁老师,最后决定在第八版进行改进,并且谢希仁老师答应给我它的亲笔签名。我是不是可以回学校找到我的计算机网络老师,让他给我重新打个分?不多,100就好了。愿每个人都能带着怀疑的态度去阅读文章并探究其中原理。道阻且长,往事作序,来日为章。期待我们下一次相遇!...

2021-12-04 21:01:16 2577 1

原创 太上老君的“三色标记法”

​ 垃圾回收首先要知道到底哪些对象是已经死亡、可以被回收,当前主流的编程语言的垃圾收集器基本都基于可达性分析算法来判断一个对象是否可以被GC。可达性分析算法要求全过程都基于一个能保障一致性的快照中进行,也就是必须冻结正在运行的用户线程。​ 那么问题来了,为什么可达性分析算法在运行时,需要一个能保障一致性的快照?如果可达性分析算法运行的线程和用户的线程并发执行,会出现什么问题?这个停顿的时间能不能减少?​ 想要解决这些疑问,不得不深入了解下,可达性分析算法底层到底如何运作的,它是如何标记出哪些对象是存活的

2021-11-26 01:22:32 3093

原创 面试官:如何判定一个对象是否存活?

​ 在进行垃圾回收之前,第一件要做的事情就是要判断哪些对象还存活着,以便于回收非存活状态的对象。那如何去判断一个对象是否存活呢?​ 本文带领大家深入探究两种算法,再也不需要应付面试了,深入了解底层逻辑后,你将完全掌握如何判定对象是否存活。引用计数算法​ 每一个对象都会添加一个引用计数器,当有一个地方引用它时,该对象的引用计数器就加1,当不引用的时候,该计数器减1,当计数器为0的时候,就代表该对象不可能再被使用。String str = new String("this is a string");

2021-11-21 12:33:47 758

原创 大厂面试选拔最后的拉分题:垃圾回收算法

​ 秋招落入尾声,春招正在向广大校招程序猿们招手,对很多准备跳槽的在职人员来说,金三银四也是快到了,是时候补一下垃圾回收算法了。垃圾回收算法几乎是大厂筛人的利器,稍微有点答不好就直接给pass了,所以基本功很重要,洪爵本期带领大家一起学习面试最常问到的:标记-清除算法、标记-复制算法和标记-整理算法。标记-清除算法​ 标记清除算法作为最早出现的垃圾回收算法之一,许多后续出现的GC算法都会和它做比较。标记清除顾名思义,先标记再清除。首先给所有需要回收的对象打上标记,第二步回收所有打上标记的对象;或

2021-11-20 20:31:48 819 2

原创 面试必问题:缓存击穿、缓存穿透、缓存雪崩,你还傻傻分不清

当我们服务器QPS比较高,并且对数据的实时性要求不高时,往往会接入缓存以达到快速Response、降低数据库压力的作用,常用来做缓存的中间件如Redis等,面试时经常会被面试官提问,作为里面最常见,几乎是必考题的缓存击穿、穿透、雪崩场景,你真的了解了吗?​ 前端发起一个请求,经历过三次握手后连接到服务器,想要获取相应的数据,那么服务器接入了缓存中间件后,从接收到Request到最后的Response,到底是怎样的一个流程呢?以下探讨忽略掉参数校验等逻辑,直接讲最核心的链路。调用链路​ 一个请求Req

2021-11-14 14:11:11 3537 9

原创 趣讲消息队列,搞懂消息队列到底是个啥

​ 今天想谈谈消息队列,洪爵大概可以猜测到大家听到消息队列有什么反应,大致可以分为以下几类人。​ 第一类人,懵懵懂懂,刚大学接触编程,还没使用过消息队列,甚至以为消息队列就是代码里面去new一个List之类的;第二类人,听过消息队列,了解过消息队列,但具体是什么还不太了解,只知道一说到消息队列,立马脑中就出现三组词语,削峰、异步、解耦;第三类人,使用过消息队列,对它有一定的认识,但不知道为什么要这样设计,消息队列有怎样的前世今生,如何演变到现在这个模样?**第四类人,已经足够了解消息队列了,看本篇文章就是

2021-11-05 20:03:56 288 4

原创 B站最全面的雪花算法出炉了

分布式唯一Id之“雪花算法”文章版本:《分布式唯一ID之"雪花算法"》分布式唯一Id之“雪花算法”视频版本:https://www.bilibili.com/video/BV1q3411k7Nc/B站搜索Knight洪爵,更多前沿知识点,助你全面提升自我!...

2021-10-31 03:56:37 173

原创 分布式Id生成策略

​ 哈喽,大家好,上一篇文章洪爵详细讲解了雪花算法,但其实还有其他的分布式Id生成方式,洪爵这里做一个简单的介绍,如果有需要讲详细的,可以私信洪爵哦。1、UUID:​ 其中一个是比较常见的UUID(Universally Unique Identifier),它有着全球的唯一性,因为生成的Id里是携带了些硬件信息,比如MAC地址等。虽然唯一性很高,并且生成较为简单,但它有个缺点,一个是说它是字符串,并且字符串长度较大,存储和查询的性能不高,第二个是说它不具备主键Id自增的能力。public class

2021-10-25 23:21:11 200

原创 分布式唯一ID之“雪花算法“

​ 雪花算法是啥?它和分布式唯一ID有什么关系?为什么需要分布式ID?不要着急哈,等洪爵和你一一道来。​ 首先说下什么是分布式唯一ID,随着互联网的发展,服务化的演进,我们的单体服务已经不能满足时代的需求,业务上的一张表数据量也越来越大,大大的降低了查询、插入效率。单库单表已经不能支撑现有业务了,这个时候就出现了主从同步,写库和读库通过主从同步进行读写分离。​ 但读库和写库在表结构上,还是同样的数据,只是分开了查询和写操作的压力,不能从根本上解决问题,表的数据量依然很大,这时候就需要对数据库进行分库分

2021-10-24 13:10:53 762

原创 适配器模式,据说世界上至少存在一个完全适配你灵魂的人

​ 终于来到了这一天,最后一篇设计模式啦,虽然是最后一篇,但设计模式的运用永无止境!​ 据说每个人生下来都只是一半,而这个世界上至少会存在那么一个人,它与你的灵魂完全契合完全互补,就像散落在各处的钥匙,总能找到一扇门可以打开… …没错就是我们今天要讲的适配器模式啦!​ 什么是适配器模式,运用在什么场景,有什么优缺点?三大种类设计模式中,结构型模式、创建型模式、行为型模式它属于哪一类?​ 适配器模式是作为两个不兼容接口之间的桥梁,这种设计模式属于结构型模式,这类模式更关注类和对象之间的结合。​ 当你需

2021-10-16 20:49:27 135

原创 外观模式,女孩子的择偶标准!

​ 大家周末好呀!今天想和大家谈一下女孩子!哦不是,外观模式。​ 啥是外观模式捏?它能干啥捏?有啥优缺点呢?​ 我们知道设计模式分为三大类,一类是创建型模式,第二类是结构型模式,最后一类是行为型模式。那外观模式是属于哪一种呢?听我细细道来。​ 外观模式是一种隐藏系统的复杂性,提供给客户端一个可以访问系统接口的设计模式。主要解决访问复杂系统内部子系统时的复杂度,客户端不需要知道服务端到底内部结构复杂与否,整个系统只需要提供给一个接待员即可,即像我们服务端提供给前端的接口一般。实现了客户端与系统的解耦,外

2021-10-16 13:27:45 133

原创 状态模式,懂你的另一半

​ Hello,大家好呀!今天洪爵带给大家的是状态模式,一个懂你的另一半!​ 为什么这么说呢?听洪爵给你介绍。​ 什么是状态模式?它有什么用,适合什么场景,有哪些优缺点?​ 状态模式是一种类的行为基于它的状态改变而改变的模式,它属于一种行为型模式,这种模式更关注与对象之间的通信。当你需要因为行为随着状态改变的场景,比如说各种条件语句,分支语句等等,都可以用状态模式来代替。​ 那我能写个if-else,我干嘛要用状态模式?状态模式一个是说封装性好,隐藏了底层逻辑,第二个是整体的代码结构非常的整洁,可维

2021-10-14 01:06:27 137

原创 中介者模式,终结者的缔造者!

​ 今天想和大家讨论下中介者模式,中介者模式是啥捏?设计模式有三大类,一类是创建型模式,第二类是行为型模式,最后一类是结构型模式,中介者模式属于哪一种呢?看完本篇文章,你就懂啦!​ 那什么是中介者模式,它适合什么场景,如何实现,有哪些优缺点?听洪爵一一道来。​ 中介者模式是用来降低对象和对象之间通信的复杂性,提供一个中介类来给大家进行交互。啥意思?最初的时候,人们想要以物换物,都是通过点对点的进行交易,比如说A今天找到B,想用一个牛头换一个B的羊头。慢慢的,随着时代的进步,逐步演化成了一个固定地方进行交

2021-10-12 00:58:16 200

原创 人生短短几十载,眼一睁一闭,已过半生

生命是什么,为什么会有生命?生命是宇宙对自我认知的需要吗?​ 每当抬头仰望星空,总是惊叹银河的壮阔,叹息我所处地的渺小,会不断抛出十万个为什么,为什么会有宇宙,宇宙是什么,怎么形成,宇宙之外是什么,进而思考到为什么物质一定是以这种形式存在,细思觉得只有被制造出来,一切才会有形,才有道理可以说得通。​ 有的人可能听不太懂,我举个例子,你会去思考为什么会有沙子,会有石头吗,你可能觉得一切都是再正常不过了,因为都是我们随处可见的材料。但如果你生活在一个原本满地是锤子的世界,你也会觉得这地上就应该是满地的锤子。

2021-10-11 00:42:40 187

原创 解释器模式,女朋友给男朋友的一个机会!

​ **请注意!请注意!!!**今天讲给大家讲解非常“有用”的设计模式,解释器模式!!!​ 设计模式有三大种类,一种是创建型模式,一种是结构型模式,最后一种是行为性模式,那么解释器模式属于哪一种呢?带领大家一起来了解学习解释器模式!​ 本次介绍围绕着以下五点展开。什么是解释器模式?用来做什么?怎么做?有哪些优点?有哪些不足?​ 解释器模式顾名思义,就是用来定义和解释。​ 给定一种特定语言,这个语言有特定的文法,解释器可以解释这个语言中的句子含义。即解释器提供一种语言,如java,同时它也提供一种手段

2021-10-10 22:27:47 281

原创 访问者模式,见到你想见到的人

​ 今天洪爵想和大家一起学习访问者模式,学习完这篇文章,或许你就知道该如何去合理的访问你想要访问的人、事、物了。​ 设计模式一共有三种模式,第一种创建型模式,第二种行为型模式,最后一种结构型模式。​ 那么访问者模式属于哪一种类型呢?我们先来简单介绍下访问者模式。听完你或许就知道它到底属于哪一种模式。​ 访问者模式,顾名思义,提供一种数据结构与数据操作分离开的模式。实现数据结构和操作的解耦。当我们需要对一个对象进行很多不相关的操作,但不想让这些操作“污染”到这些对象时,提供一个访问者对象来封装这些操作。

2021-10-06 15:34:36 160

原创 备忘录模式,徐长卿的三世记忆

​ 今天洪爵想和大家一起学习备忘录模式!​ 设计模式分为三大种类,一种是创建型模式、另一种是结构性模式、最后一种是行为型模式。那么备忘录模式是属于哪一种呢?​ 先简单的介绍下备忘录模式,故名意思,就是用来保存某些信息的,比如说保存某个对象的状态,在适当的时候进行恢复,既然加上了模式二字,那么它在设计上,肯定拥有着比较好的结构。​ 在不破坏封装性的前提下,获取对象内部的状态,使用另外一个对象去保存该对象的状态,类的职责单一。​ 备忘录模式有什么用呢?其实我们上网的过程中就经常能遇到,比如说浏览网页想回

2021-10-05 11:47:41 137

原创 迭代器模式,乱披风锤法,九九八十一锤!

​ 迭代器模式几乎可以说是最常用的设计模式了,这种模式我们随处可见,用于顺序的访问对象的元素而不需要底层实现。迭代器模式属于行为性模式的一种,这类设计模式特别关注对象之间的通信。​ 常见的Iterator就是迭代器模式的一种,迭代器模式将存储数据和遍历数据的职责分离,但新增聚合类就需要增加对应的迭代器,在一定程度上增加了系统的复杂性。类图:具体代码实现:public interface Aggregate { Iterator iterator();}public interface

2021-10-04 13:45:42 124

原创 过滤器模式,获得元宇宙的一切事物

​ 今天带给大家的是过滤器模式,这个模式通俗易懂,我们直切正题!​ 过滤器模式是一种结构型模式,这类模式更关注类和对象的组合。啥是过滤器模式呢,比如现在有一个动物类,这个动物类里面有猫、狗、狮子、猴子等等,那么你要怎么从里面过滤出狗的对象呢?你要怎么从里面过滤出即是公并且是狮子的对象呢?​ 我们称一种过滤条件为一种标准,基于各种标准去过滤出你想要的对象列表,这一系列动作通过代码的方式实现解耦,我们叫做过滤器模式。​ 现在举一个例子,现在有一个电脑类,这个电脑由很多零件组装而成,比如说cpu,内存条等等

2021-09-11 16:24:55 146

原创 装饰器模式,圣诞节的礼物

​ 今天想带给大家的是装饰器模式,它属于结构型模式的一种,结构型模式更加关注类和对象的组合关系。​ 那么啥是装饰器模式呢?它有什么作用?用在什么场景?​ 装饰器模式允许对现有的对象添加新的功能,同时不会改变它的结构。这种扩展一个类的功能是动态的。其实很生动形象,装饰器,就比如你送一个礼物,你肯定会用礼盒把它包装起来,装饰器模式其实同理,在“礼物”的基础上,在外面包了一层。​ 装饰类和被装饰的类是解耦合的,可以独立的发展,适合用在需要拓展一个类的功能,并且可以使用不同装饰类进行排列组合实现不同的功能或效

2021-09-05 12:01:24 136

原创 空对象模式,冥想的最高境界!

​ 大家好呀,今天也是设计模式冲冲冲!​ 今天带给大家的是空对象模式,纳尼?空对象模式是什么鬼?​ 空对象模式是行为型模式中的一种,行为型模式特别关注对象之间的通信。​ 空对象模式顾名思义,**使用一个空对象来取代对象为null的实例,并且可以提供在对象为null时的默认行为。**我们需要创建一个抽象类或者接口,然后两个具体的实现类,一个是空对象类,另一个则是正常实现的类。​ 光说可能很抽象,我们为什么要用空对象模式?它用在什么场景?连个场景都不举一个,简直就是在放pi,所以洪爵在这里给大家举一个栗

2021-09-03 20:46:04 205

原创 代理模式,你的全职保姆!

​ 大家好呀,今天宇宙中写满四个大字,设计模式!大家一起在设计模式的海洋里遨游吧!​ 代理模式是结构型模式中的一种,啥是结构型模式捏?结构型模式更多关注的是类和对象之间的组合。​ 啥是代理模式捏?​ 比如说现在我想要访问B类,但是我不直接访问B类,我通过A类去访问B类来达到我想访问B类的目的。​ 很多人就在想,你nao餐吗?你直接访问B类不就好了,搞这些花里胡哨,俄罗斯套娃呢?​ 代理模式主要是提供对目标对象的另外访问方式,这样做有什么好处?可以在目标对象实现的基础上,增强额外的功能,拓展目标对象

2021-09-01 23:37:41 96

原创 《模板模式》被安排明明白白的人生

​ 大家好,我是洪爵,今天打开手机浏览网页,满满都是设计模式。​ 模板模式,是属于设计模式中的行为性模式,该类设计模式特别关注对象之间的通信。​ 很多时候我们会发现,在设计一个通用系统的时候,我们已经知晓或总结出整个SOP流程,确定了每一个步骤的执行顺序,但是具体的步骤实现还不清楚,因为会根据业务场景的不同,具体的实现也会不同,但是整个流程已经是确定下来的了。比如说你要出行,选择的交通工具是飞机,那么整个过程肯定包含有三个步骤,第一个是buy()买票,第二个是开始旅程,第三个是结束旅程。但是具体实现可能

2021-08-29 09:57:07 97

原创 《策略模式》实现多种营销玩法的基石

​ 大家好呀,今天阴云密布,杭州闪过3816次闪电,仔细一看,原来组成四个大字:设计模式!​ 今天又是设计模式的一天,洪爵今天想讲的是策略模式呀。​ 策略模式是一种行为性模式,这类的设计模式特别关注对象之间的通信。​ 什么是策略模式,啥时候用策略模式?​ 比如说,当你做一个计算的时候,你可能使用到,加法,减法,乘法或者除法,那么说到底,加减乘除本身就是一种算法,算法本身只是一种策略;当你要出行,步行、自行车、高铁、飞机等都是出行方式的一种,本身也是一种策略。​ 当有这样类似的算法,我们就把这些算法

2021-08-28 11:11:42 136

原创 命令模式,升级版的灭霸响指

​ 大家好,我是洪爵,你看天上的星星,是不是排列组合成四个大字:设计模式。​ 今天给大家讲的是命令模式,命令模式是一种行为性模式,行为性模式特别关注对象之间的通信。​ 那么命令模式是干啥的,有什么用捏?话不多说,gogogo!​ 命令模式其实随处可见,比如当你按下了空调遥控器,空调就会去做对应的指令;比如我们输入java -version命令,那么如果你成功安装了java,那么它就会对你的命令做出回应,输出相应的版本号到屏幕,linux系统里面输入ls,cd,cat等等都是命令模式。​ 所以既然命令

2021-08-27 22:12:07 144 1

原创 原型模式,孙悟空都会用,猴毛变出的小猴子!

大家好呀,今天又又又是设计模式的一天!跟着洪爵轻松学完设计模式~​ 今天要讲的是原型模式,大家可能都听过原型模式,因为在spring中你可以给bean配置成原型模式,或者是单例模式,如果是原型模式,那么每次去获取这个bean的时候,都会去生成一个新的对象。​ 原型模式,是一种创建型模式,它用在创建重复的对象的场景,并且保证它的性能。原型模式需要实现Cloneable接口,那么既然每次返回的都是一个新对象,那么我为什么不直接使用new呢?洪爵知道大家有这样的问题,所以也写有相关的文章,贴在了本篇文章的下方

2021-08-07 22:54:49 321

原创 组合模式,创造多元宇宙的桥梁!

组合模式,创造多元宇宙的桥梁!​ 大家好呀!抬头看,天空中满满写着四个大字,设计模式!今天又是设计模式的一天,今天要讲的是组合模式,创造多元宇宙的桥梁,是属于设计模式中的结构型模式。​ 不知道大家有没有想过**,文件系统结构是怎么设计的**,文件夹里既能放文件,也能放文件夹,然后里面的文件夹又能放文件和文件夹。如果说让你用代码的方式来实现这样一个结构,你会怎么设计呢?​ 许多办公软件都可以展示组织架构,比如说某组织的CEO直接管理数十员工,这数十员工里可能某员工A有自己直接管辖的人,员工A可能管辖了

2021-08-07 13:27:47 120

原创 抽象工厂模式,加工出不可思议的产品!

大家好,我是洪爵,今天又是设计模式的一天!​ 之前我们有谈论过工厂模式,那么抽象工厂模式又是什么呢?其实可以简单的概括:工厂模式,是工厂加工出对应的产品;而抽象工厂模式是专门生产工厂的,每个工厂又可以制造自己的产品(有点俄罗斯套娃)。​ 抽象工厂模式是属于创建型的模式,创建型模式即提供一种最佳的创建对象方式。​ 抽象工厂模式其实和工厂模式有点类似,我把文章都贴出来了。大家可以对照着看下,我理解大家理解了工厂模式,那么抽象工厂模式其实就是一个模子刻出来的东西。类图:我们创建出一个AbstractF

2021-08-01 12:20:01 120

原创 桥接模式,通往世界任何一个角落!

​ 大家好鸭,我系洪爵。今天又是设计模式的一天。​ 洪爵想给大家讲一下桥接模式!桥接模式,通往世界的任何一个角落都必备的桥梁!​ 桥接模式属于结构型模式,结构型模式旨在关注类与对象的组合。​ 那么桥接模式能干什么呢?我们先来看一个场景:​ 这世界上有很多种语言:中文、俄罗斯语、德语……等等,我们抽象出一个语言类,然后让中文、俄罗斯语等去继承这个语言类进行拓展。这个时候,要具体到某人去说这个语言了,这里有两种解决方案,一种是通过继承的方式去实现:​ 我们会发现当需要具体到某一个人去说语言,就会产生

2021-07-31 13:31:33 102

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除