设计模式指导思想:找到不同场景下,需求容易发生变化的地方,把这一部分变化的逻辑封装起来。
创造型设计模式一共有5种:工厂模式、抽象工厂、单例模式、创造者模式、原型模式。本文我们介绍工厂模式。
保证一个类在当前进程中只存在一个实例。单例模式又分为懒汉模式和饿汉模式。
示例:
/**
* 在调用getInstance方法的时候才初始化lazysingleton
* 所以称为懒汉单例模式
*/
export class LazySingleton{
// 私有化constructor方法,防止外部实力化对象
private constructor(){}
private static instance: LazySingleton
public static getInstance(): LazySingleton{
if(!this.instance){ // 如果是支持多线程的语言,需要加线程锁
return new LazySingleton()
}
return this.instance
}
}
/**
* 在class加载时就实力化hungrysingleton对象
* 称为饿汉单例模式
*/
export class HungrySingleton{
// 私有化constructor方法,防止外部实力化对象
private constructor(){}
private static instance: HungrySingleton = new HungrySingleton() // 如果是支持多线程的语言,需要加线程锁
public static getInstance(): HungrySingleton{
return this.instance
}
}
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8