靡不有初,鲜克有终
03
09
组合模式 组合模式
定义这节我们将介绍一种全新的设计模式——组合模式。想起“组合”二字,自然联想到了很多,比如:文件和文件夹、容器和组件、火车和车厢、大树的枝干和叶子等等,大自然中组合的例子数不胜数。 什么是组合关系?组合关系:部分与整体的关系,有了整
2022-03-09
09
Redis + Lua脚本实现服务限流 Redis + Lua脚本实现服务限流
保障服务稳定的三大利器:熔断降级、服务限流和故障模拟。今天和大家谈谈限流算法的几种实现方式,本文所说的限流并非是Nginx层面的限流,而是业务代码中的逻辑限流。 限流的作用由于 API 接口无法控制调用方的行为,因此当遇到瞬时请求量激
2022-03-09
08
过滤器模式 过滤器模式
定义模式引入首先,什么是过滤器模式?这种模式生活中比较常见,比如移动推出某项优惠套餐,但是套餐可使用的用户群体有限,必须满足入网 5 年以上这种条件,我们可以将 “入网五年” 作为客户群体的过滤条件,这种就是简单的过滤器模式应用。 又比
2022-03-08
08
桥接模式 桥接模式
定义桥接模式 (Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体 (Handle and Body) 模式或接口 (Interface) 模式。 Bridge 的意
2022-03-08
08
适配器模式 适配器模式
定义适配器,其实很好理解,生活中也随处可见,比如电源适配器、usb 适配器等等,那么适配器模式,也被称为Wrapper 模式。 Wrapper 有“包装器”的意思,适配器模式的定义是:将一个接口转换成客户希望的另一个接口,使接口不兼容
2022-03-08
07
原型模式 原型模式
设计一个类的时候,我们通常会使用到构造函数,这里类和对象的关系好比模具和构件的关系,对象总是从类中创建的。但是某些场景下是不允许类的调用者直接调用构造函数,也就说对象未必需要从类中衍生出来,现实生活中存在太多案例是通过直接 “克隆” 来产生
2022-03-07
07
建造者模式 建造者模式
定义所谓万丈高楼平地起,但是我们建造(Build)高楼时,需要经历很多阶段,比如打地基、搭框架、浇筑水泥、封顶等,这些都是很难一气呵成的。所以一般我们是先建造组成高楼的各个部分,然后将其一个个地组装起来,好比搭积木一般,分阶段拼接后组装成一
2022-03-07
07
RabbitMQ延迟队列 RabbitMQ延迟队列
什么是延迟队列延迟队列就是进入该队列的消息会被延迟消费的队列。而一般的队列,消息一旦入队了之后就会被消费者马上消费。 使用场景 用户生成订单之后,需要过一段时间校验订单的支付状态,如果订单仍未支付则需要及时地关闭订单。 用户注册成功之
2022-03-07
07
单例模式 单例模式
定义大家都知道,一个对象的产生都是通过 new 关键字实现的(当然也存在其它方式,比如反射、复制等),new 的实现又是依托于构造函数的,默认一个类会自动生成一个无参的构造函数在不指定构造函数的情况下。构造函数一般都是 public 权限修
2022-03-07
07
抽象工厂模式 抽象工厂模式
这回我们讲下抽象工厂模式,抽象工厂模式是工厂模式(简单工厂、工厂方法)中最具抽象和一般性的一种形态。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。 定义抽象工厂模式的定义:为创建一组
2022-03-07
5 / 6