美文网首页
TS中使用单例模式实例对象,及存取值

TS中使用单例模式实例对象,及存取值

作者: 一眼就认出你 | 来源:发表于2018-09-26 17:04 被阅读0次

单例模式实例对象优点:可以保证实例对象的唯一性,及数据的正确性


示例代码:
model层(数据层)

//VipVo.ts:
class VipVo{
     /** VIP等级 */       
    public vip:number;
}

//VipMode.ts:
class VipModel{
      private static _instance:VipModel;
      private _vipVo:VipVo;
      constructor(){
        super();
      }
      public static getInstance():VipModel{
           if(this._instance == null){
            this._instance = new VipModel();
        }
        return this._instance;
     }
     public get vipVo():VipVo{
        return this._vipVo;
     }
     public setVipVo(vo:VipVo):void{
        this._vipVo = vo;
     }
}

controller层(控制层)

//ImitVipMgr.ts
class ImitVipMgr {
        //模拟的vip等级
        private static vipLevel:number=2;
        constructor() {
            super();
        }
        private static _instance: ImitVipMgr;
        public static getInstance(): ImitVipMgr {
          if (this._instance == null) {
            this._instance = new  ImitVipMgr();
          }
          return this._instance;
        }
        public static setVip():void{
              var vipVo: VipVo = new VipVo();
              vipVo.vip = this.vipLevel++;
              //实例VipModel对象,存值
              VipModel.getInstance().setVipVo(vipVo);
        }
}

view层(视图层)

//第一步:实例ImitVipMgr对象,存值
var imitVipMgr:ImitVipMgr=ImitVipMgr.getInstance();
imitVipMgr.setVip();

//第二步:实例VipModel对象,取值
var vipMode:VipModel = VipModel.getInstance();
console.log(vipMode.vipVo.vip);
//输出2

注意:
单例模式实例对象代码

public static getInstance():VipModel{
       if(this._instance == null){
            this._instance = new VipModel();
        }
        return this._instance;
 }

获取对象代码:

var vipMode:VipModel = VipModel.getInstance();

如果获取对象的时候,使用了new,比如:

var vipMode:VipModel =new  VipModel();
console.log(vipMode.vipVo.vip);
//输出undefined

因为new一个实例,相当于创建一块内存,与之前的对象不是同一个对象,所以属性不存在
故,使用单例模式是保证对象唯一性和数据正确性的方法

相关文章

  • TS中使用单例模式实例对象,及存取值

    单例模式实例对象优点:可以保证实例对象的唯一性,及数据的正确性 示例代码:model层(数据层) controll...

  • Java 单例模式Singleton

    单例模式特点:单例类只能有一个实例单例类自己内部创建实例单例类给其他所有对象提供这一实例 懒汉模式(使用时进行对象...

  • Java单例模式以及与静态方法的一些区别

    Java单例模式说明: 在Java中单例模式分为两种:1.饿汉式单例:在定义实例以供外部使用的时候直接实例化对象,...

  • 单例模式

    单例模式 当系统中对于某个类,只需要有一个实例化对象时,可以使用单例模式。 单例模式实现方式 单例模式的实现主要有...

  • Android 架构师1 设计模式之单例模式

    前言: Java中单例模式是一种广泛使用的设计模式。单例模式的主要作用是保证在Java程序中,某个类只有一个实例存...

  • 无标题文章

    单例模式 什么是单例模式 单例模式是一个类在系统中只有一个实例对象,通过全局的一个入口点对这个实例对象进行访问。 ...

  • 单例模式

    单例模式的特点:1.单例模式只有一个实例。2.单例模式自己创建自己的对象实例。3.单例模式必须给所有其他对象提供这...

  • 第二章 应用最广的模式——单例模式

    单例模式的使用场景:在单例模式中,单例对象的类必须保证只有一个实例存在。如在一个应用中,应该只有一个ImageLo...

  • 设计模式-单例模式

    单例模式: 1.什么是单例模式? 该模式的类只有一个实例。即一个类只有一个对象实例。 2.为什么使用单例? 减少内...

  • 多线程环境中的单例模式

    1. 单例模式是什么 单例模式保证某一个类在系统中只存在一个实例对象。无论任何时候有且只有一个实例对象。 单例模式...

网友评论

      本文标题:TS中使用单例模式实例对象,及存取值

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