设计模式总共24种, 本篇教你学会在go语言中使用创建型模式
定义单例结构
定义单例对象和sync.Once变量组声明
实现初始化单例对象私有函数
实现导出单例对象函数,并once.Do调用初始化操作
初始化包全局变量使用,如log初始化等,对于能在 main 中直接完成的初始化操作可以不使用单例模式。
单例模式的主要优点在于提供了对唯一实例的受控访问并可以节约系统资源
https://medium.com/golang-issue/how-singleton-pattern-works-with-golang-2fdd61cd5a7f
定义 API 接口
定义 New 函数返回 API
实现接口类型
补充New函数,返回实现类型
常用于组件开发中,如消息中间件、缓存中间件
封装了实现细节,将对象的创建和使用分离,方便内部实现扩展
定义 构建 Builder 接口
定义 Director 实现构建过程
实现 Builder 接口
在很多游戏软件中,地图包括天空、地面、背景等组成部分,人物角色包括人体、服装、装备等组成部分,可以使用建造者模式对其进行设计,通过不同的具体建造者创建不同类型的地图或人物。
将产品本身与产品的创建过程解耦,使得相同的创建过程可以创建不同的产品对象。
创建一个结构体
添加克隆方法
相似但重新创建会比较繁琐的对象
参考链接:
https://www.cnblogs.com/zuoxiaolong/p/pattern26.html
https://design-patterns.readthedocs.io/zh_CN/latest/index.html