美文网首页
TS 单件设计模式

TS 单件设计模式

作者: wyc0859 | 来源:发表于2022-03-19 16:33 被阅读0次

运TS 类,首先会为静态成员开辟内存空间,静态成员的内存空间分配的时间要早于对象空间的分配。
并且无论是否调用这个类,是否创建对象,TS都会为这个类的静态方法、静态属性分配内存空间
只要前服务器不重启或控制台程序还没有结束,都一直存在这个内存空间。后续无论调用多少次,都是调用的同一空间
内存空间有三个区:静态区、栈、堆

普通类
class Student {
  public sname?: string; //对象属性
  public static only?: number; //类的静态属性

  public static className() {
    //this.  //可以看见,能点出一堆类属性和方法,没有talk方法和sname属性
  }
  //注意,js中可以直接new这个函数,当做构造函数。但TS是不允许的,更面向对象
  public talk() {
    //this.  //只能点出实例对象属性和方法,没有className方法和only属性
    console.log("1-talk");
  }
}
const a = new Student();
a.talk(); //1-talk
//TS 类可以访问 prototype 原型对象属性,修改或覆盖都可。
//但无法在 prototype 原型对象属性增加新的方法或属性
Student.prototype.talk = () => {
  console.log("2-talk");
};
a.talk(); //2-talk

//Student.prototype.page = 2  //不能新增属性或方法

懒汉式单件设计模式

【延迟使用】等到需要使用对象时才创建对象,按需创建

懒汉式单件设计模式
第一步:把构造器设置为私有的,不允许外部new
第二步:至少应该提供一个外部访问的静态方法,外部可以这得到一个对象。
第三步:外部调用第二步提供的静态方法来获取一个对象

class Moon {
  static cname: string = "月亮";
  static cself: Moon;
  constructor() {
    console.log("月亮构造器");
  }
  public static setMoon() {
    if (!this.cself) {
      console.log("此静态属性,目前是undefined");
      this.cself = new Moon();
      console.log("静态属性已指向一个对象空间");
    }
    return this.cself;
  }
  public talk() {
    console.log("hello,我是月亮");
  }
}
const b = Moon.setMoon();
b.talk();

饿汉式单件设计模式

饿汉式单件设计模式: 是无论你是否用到了实例对象,一开始就建立这个唯一的对象
第1+3步和上面一样
第2步: 建立一个静态引用属性,同时把这个静态引用属性指向实例对象【new 自己()】

class Sun {
  static cname: string = "太阳";
  static cself: Sun = new Sun();
  constructor() {
    console.log("太阳构造器");
    this.talk();
  }
  public talk() {
    console.log("hello,我是太阳");
  }
}

这个ts文件并没有调用sun类或方法,但运行这个文件,可以看出它执行了。
是上面静态属性的功能实现的。

相关文章

  • TS 单件设计模式

    运TS 类,首先会为静态成员开辟内存空间,静态成员的内存空间分配的时间要早于对象空间的分配。并且无论是否调用这个类...

  • 用ts学习单件模式

    单件模式 (Singleton Pattern) 定义: 确保一个类只有一个实例,并提供一个局部访问点。 单件模式...

  • TS 设计模式03 - 单例模式

    1. 简介 单例模式的概念很简单,就是在整个程序中有且仅有一个实例。这种场景其实是很常见的,比如我们的程序中存放当...

  • 设计模式 | 单件模式

    单件模式 确保一个类只有一个实例,并提供一个全局访问点 单件模式的好处 ​ 我们可以延迟实例化这个类,只在需要...

  • 【设计模式】单件模式

    设计模式:单件模式 定义:单件模式确保一个类只有一个实例,并提供了一个全局访问。 要点 单件模式确保程序中一个类最...

  • 单件设计模式

    一、定义 设计模式 设计模式就是一种更好的编写代码方案。 常见设计模式 工厂设计模式、抽象工厂设计模式、抽象工厂设...

  • PHP程序员学习设计模式之单件模式(Singleton Patt

    单件模式(Singleton Pattern) 单件模式可能是最著名的设计模式之一。你也许会遇到许多这样的情形,你...

  • Android中的设计模式之单例模式

    参考 《设计模式:可复用面向对象软件的基础 》3.5 Singleton 单件--对象创建型模式 《设计模式解析》...

  • 单例模式Java篇

    单例设计模式- 饿汉式 单例设计模式 - 懒汉式 单例设计模式 - 懒汉式 - 多线程并发 单例设计模式 - 懒汉...

  • 设计模式之单例模式

    设计模式之单例模式 1. 模式定义 单例模式又称为单件模式或单态模式,属于创建者模式。它确保某一个类只有一个实例,...

网友评论

      本文标题:TS 单件设计模式

      本文链接:https://www.haomeiwen.com/subject/dgxpdrtx.html