自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Go语言实现代理模式

是一种结构型设计模式。其中代理控制着对于原对象的访问, 并允许在将请求提交给原对象的前后进行一些处理,从而增强原对象的逻辑处理。上面的代理者我们一般叫做代理对象或者直接叫做代理-- Proxy,进行逻辑处理的原对象通常被称作服务对象,代理要跟服务对象实现相同的接口,才能让客户端傻傻分不清自己使用的到底是代理还是真正的服务对象,这样一来代理就能在客户端察觉不到的情况下对服务对象的处理逻辑进行增强。什么叫对处理逻辑进行增强?或者换一种说法,叫对核心功能添加增强功能?

2023-08-01 11:04:19 201 1

原创 Go语言实现原型模式

如果一个类的有非常多的属性,层级还很深。每次构造起来,不管是直接构造还是用建造者模式,都要对太多属性进行复制,那么有没有一种好的方式让我们创建太的时候使用体验更好一点呢?今天的文章里就给大家介绍一种设计模式,来解决这个问题。

2023-08-01 10:41:38 53 1

原创 用Go语言实现建造者模式

我们给 DB 连接池加一个建造者模式,这样在设置每个配置化参数的时候就可以对参数进行一步检查,避免直接 new 连接池对象,再给每个属性赋值时都加判断,把每个参数的校验内聚到参数自己的建造者步骤里。它是一种对象构建模式,是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。另外在建造者过程的每个参数步骤里,我们都借用了之前提到的处理 Go Error 的方式,把在外部调用时的错误判断,分散到了每个步骤里。建造者模式,也有翻译成生成器模式的,大家看到后知道他们是一个东西,都是。

2023-08-01 10:27:05 45 1

原创 用Go语言实现建造者模式---工厂模式

我们用几个较为简单的例子和大家一起学习了下三个工厂模式各自的场景和优缺点,实际使用的时候项目一开始需求还没那么明确的时候推荐还是先用简单工厂,等我们业务理解更透彻后如果确实需要再升级到工厂方法也不迟。抽象工厂也是,如果确定引入产品生态的概念才能更好地进行领域建模,再开始使用抽象工厂也不迟。

2023-08-01 10:05:12 51 1

原创 用Go语言实现建造者模式---单例模式

这篇文章其实是把单例模式的应用,和Go的单例模式版本怎么实现给大家说了一下,现在教程大部分都是用 Java 讲设计模式的,虽然我们可以直接翻译,不过有的时候 Go 有些更native 的实现方式,让实现更简约一些。

2023-07-31 16:32:18 60 1

原创 小白也能看懂的雪花算法底层原理

说得通俗一点,就是一种可以生成唯一性id的算法,真的可以保证全局性唯一,广泛使用于分布式系统中,毕竟是分布式嘛,肯定各种奇奇怪怪的场景会导致id冲突,这时雪花算法就变得很香了,直接生成一个64位的整数。3.机器ID:每个机器或节点都被分配一个唯一的机器ID,通常使用网络地址或其他标识生成一个较短的数字作为机器ID,这样可以确保不同机器生成的ID不会发生冲突4.4:序列号:通俗一点将就是一毫秒内会生成多个id,因为时间戳是精确到毫秒级别,难免有重复,这时加一个序列号就将重复性的问题解决了,完美。

2023-06-28 17:54:40 123 1

空空如也

空空如也

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

TA关注的人

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