《深入理解设计模式》记录

《深入理解设计模式》记录 这里只记录了相对常用、面试常问的设计模式。 单例模式 单例模式(Singleton Pattern)是一种创建型设计模式,其核心目标是确保一个类仅有一个实例,并提供全局访问点。它适用于需要全局唯一对象且频繁访问的场景,例如配置管理、线程池、日志记录器等。 单例模式需要注意三点: 私有化构造函数:防止外部通过 new 直接创建实例。 自行创建实例:类内部负责生成唯一实例。 全局访问方法:提供静态方法供外部获取实例。 懒汉模式 特点:延迟实例化,首次调用时创建实例,需处理线程安全问题。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 package singleton import "sync" type lazySingleton struct { } var ( instance *lazySingleton once sync.Once ) func GetLazyInstance() *lazySingleton { once.Do(func() { instance = &lazySingleton{} }) return instance } 饿汉模式 特点:在包加载时直接初始化实例,无需考虑线程安全。 1 2 3 4 5 6 7 8 9 10 11 package singleton type eagerSingleton struct { } var instance = &eagerSingleton{} func GetEagerInstance() *eagerSingleton { return instance } 懒汉模式的另一实现形式:静态内部类 特点:通过嵌套结构体延迟加载,结合 sync....

March 8, 2025 · 1500 words · Kurong