自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Bridge Pattern 桥接模式

有时候一个类,可能会拥有多个变化维度。比如奶茶可以选择容量大小、口味风味。容易想到的实现方案是通过继承实现各种组合,但是这样会很容易造成类爆炸。那么有没有什么良策呢?答案就是 Bridge Pattern 桥接模式,其是结构性模式的一种,本文就让我们来了解下该模式设计模式模式思想这里,我们需要构建一个汽车类,我们知道汽车有很多品牌,比如宝马BMW、奔驰Benz。与此同时,汽车的颜色又是五颜六色的,常见的有红、绿、蓝。可以看到在这里对于汽车而言,其存在两个维度——品牌、颜色

2022-03-23 15:21:34 295

原创 Decorator Pattern 装饰器模式

继承是拓展类功能最常见的手段,但是其缺点也很明显,其耦合程度较高。这里我们介绍一种新的方法来拓展类的功能——Decorator Pattern装饰器模式,其是结构性模式的一种,通过包装的方式实现动态增强、拓展已有对象的功能设计模式简介在 Decorator Pattern 装饰器模式下,如果我们期望拓展已有对象的功能,那么就可以通过装饰者对象来包装该这个已有对象来实现。显然这种动态的方式比继承会更加灵活。具体地,装饰者对象内部会持有被装饰对象的引用,这样装饰者对象一方面用于

2022-03-22 15:40:14 72

原创 Facade Pattern 外观模式

模式思想在介绍该模式之前,我们先来看一个生活中的案例。当你下班回家后,需要把家里的电器一个一个依次打开,开电视、开空调、开灯……,而当你准备出门上班时,又要把之前打开的电器一个一个依次关掉,关电视、关空调、关灯……。这样家里电器一多以后,每次开开关关是很麻烦的。那么我们就会想如果有一个万能开关,可以直接一次性控制家中全部电器的开关。这样是不是就方便很多了?每次回家或者上班出门,只需按一下万能开关就可以完成之前的多次开关操作了利用我们在现实世界获得的指引,将其运用于软件工程领域下,即提炼为我们今天所要介.

2022-03-21 22:57:00 232

原创 Prototype Pattern 原型模式

概述如果需要创建一个重复的对象实例,常见的方式是通过构造器new并不断调用setXxx方法来实现。这样做一来繁琐不够简洁,二来效率较低。而且不便于在运行时动态改变类的具体实现类型。而 Prototype Pattern 原型模型则可以更好的解决这个问题。在Prototype Pattern 原型模式中,其有两个角色:原型抽象角色:其定义了具体原型角色所需要实现的方法,在Java中可通过接口或抽象类类实现具体抽象原型:其是原型抽象角色的具体实现类,需要在具体的实现类中实现克隆复制的具体方法基于接.

2022-03-21 21:53:12 259

原创 Builder Pattern 建造者模式

建造者模式是日常开发中比较常见的设计模式,它的主要作用就是将复杂事物创建的过程抽象出来,该抽象的不同实现方式不同,创建出的对象也不同。通俗的讲,创建一个对象一般都会有一个固定的步骤,这个固定的步骤我们把它抽象出来,每个抽象步骤都会有不同的实现方式,不同的实现方式创建出的对象也将不同。举个常见的例子,想必大家都买过车,车的生产或者组装其实就是属于建造者模式,我们知道,车的生产都需要安装发动机,变速箱,底盘等组件。我们可以把这个安装步骤抽象出来,至于到底装哪种发动机,比如宝马还是奔驰就是对该抽象安装步骤的具体实

2022-03-21 17:38:58 182

原创 Abstract Factory Pattern 抽象工厂模式

之前我们介绍了Factory Pattern工厂模式,其较适合于只有一种类型产品的场景。但有些时候一家工厂可能会生产多种类型的产品。比如家电厂无论海尔还是美的,都会生产冰箱、洗衣机、空调等多种不同类型的产品。这个时候,就可以应用我们这里所说的Abstract Factory Pattern抽象工厂模式简介这里我们以家电厂商为例来进入引入介绍。对于海尔,美的这些家电厂商而言,其会去生产销售冰箱,洗衣机,空调等这些产品。换句话说,在这里,一家工厂将不再是只提供一种产品了,而是会去提供多种产品。所以对于Ab

2022-03-19 17:49:47 105

原创 Factory Pattern 工厂模式

很多时候我们只是期望获取对象实例即可,并不关心实例构造过程。这个时候就可以将通过工厂模式来解决这个问题,其同样也是一种创建型模式。将实例的具体构造过程进行封装以对外屏蔽,就像现实世界中我们只需从工厂直接拿取产品即可,而无需care产品在工厂里的具体制造过程。设计模式Simple Factory Pattern 简单工厂模式假设有三种交通工具:Car小轿车、Broom扫帚、Plane飞机。客户订购了其中某一个交通工具,那么只需要在佳通工具工厂把交通工具造好了直接去取就好了,至

2022-03-19 16:50:18 333

原创 Singleton Pattern 单例模式

Singleton Pattern 单例模式,作为创建型模式的一种,其保证了类的实例对象只有一个,并对外提供此唯一实例的访问接口。23中设计模式概述对于单例模式而言,其最核心的目的就是为了保证该类的实例对象是唯一的。为此一方面,需要将该类的构造函数设为private,另一方面,该类需要在内部完成实例的构造并对外提供访问接口。单例模式的好处显而易见,可以避免频繁创建、销毁实例所带来的性能开销;但其缺点也同样明显,此类不仅需要描述业务逻辑,同时还需要构造出该类的唯一对象并对外提供访问接口,

2022-03-19 14:06:40 248

原创 一致性hash算法

背景试想这样一个场景,我们拥有3个Redis服务实例(分别为0号~2号实例)。我们期望缓存数据可以均匀分布到这3台机器上。一个朴素的想法是对key先哈希再取模,即 hash(key) % N。示例如下所示hash(key 1) = 30,30%3 = 0 → 0号Redis实例 hash(key 2) = 17,17%3 = 2 → 2号Redis实例 hash(key 3) = 11,11%3 = 2 → 2号Redis实例 hash(key 4) = 22,22%3 = 1 → 1号Redis实例

2022-03-17 12:23:23 596

空空如也

空空如也

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

TA关注的人

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