从总体上说,设计模式可以分为创建型模式、结构型模式、行为型模式 3 大类,用来完成不同的场景。其中分类如下:
1. 创建型模式
它提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new
运算符直接实例化对象。这种类型的设计模式里,单例模式和工厂模式(具体包括简单工厂模式、抽象工厂模式和工厂方法模式三种)在 Go
项目开发中比较常用。
1.1 单例模式
单例模式,是最简单的一个模式。在 Go
中,单例模式指的是全局只有一个实例,并且它负责创建自己的对象。单例模式不仅有利于减少内存开支,还有减少系统性能开销、防止多个实例产生冲突等优点。
因为单例模式保证了实例的全局唯一性,而且只被初始化一次,所以比较适合全局共享一个实例,且只需要被初始化一次的场景,例如数据库实例、全局配置、全局任务池等。
单例模式又分为饿汉方式和懒汉方式。
- 饿汉方式指全局的单例实例在包被加载时创建