Typescript 单例实例DEMO

// 构建单件设计模式 // 第一步:把构造器设置为私有的,不允许外部来创建类的实例【对象】 // 第二步: 至少应该提供一个外部访问的方法或属性,外部可以通过这个方法或属性来得到一个对象 // 所以应该把这个方法设置为静态方法 // 第三步:外部调用第二步提供的静态方法来获取一个对象 export default class MyLocalStorage { count3!: number; // 静态属性和对象属性[实例属性】是类中两大成员 static localstorage: MyLocalStorage//静态引用属性 static count: number = 3;//静态的基本类型属性 constructor() { console.log("这是TS的单件设计模式的静态方法的构造器"); } // 提供一个外部访问的方法, // 通过这个方法用来提供外部得到一个对象的方法 // 1. 带static关键字的方法就是一个静态方法 // 2. 静态方法和对象无关,外部的对象变量不能调用静态方法和静态属性, // 3. 外部可以通过类名来调用 // 静态方法不可以访问实例属性或实例方法【对象属性或对象方法】 public static getInstance() { // let localstorage = new MyLocalStorage(); // return localstorage // return new MyLocalStorage(); // 使用局部变量来解决 失败了 // let localstorage // if (!localstorage) { // localstorage = new MyLocalStorage(); // } // return localstorage //this.setItem // if(!false){ undefined null 0 false //} if (!this.localstorage) {//如果静态对象属性指向创建对象 console.log("我是一个undefined的静态属性,用来指向一个对象空间的静态属性") this.localstorage = new MyLocalStorage() } return this.localstorage } public other() { } public test() { } // public static getInstanceNew(){ // this. // } // 保存key-value public setItem(key: string, value: any) { localStorage.setItem(key, JSON.stringify(value)) } public getItem(key: string) { let value = localStorage.getItem(key) return value != null ? JSON.parse(value) : null; } }

 

 

https://bytenote.net/article/117138986404675585

 

posted @ 2023-03-01 20:31  imxiangzi  阅读(162)  评论(0编辑  收藏  举报