实现单例模式

实现代码如下



//单例模式  整个系统假如只能有一个Board对象
// 满足条件 1.只能有new 一个 构造函数 2.如果创建了两个必须完全相同
class Board {
    w:number = 400;
    h:number = 500;
    private constructor (){} // 满足第一个条件
    private static  _board?:Board;
    //第一个方法  需要的时候创建的
    static createBoard (){ //静态方法 里面的this 指向的类的本身(注意点) 不是当前类 他是附属在当前类上的
        if(this._board){
            return this._board;
        }
        this._board = new Board();
        return this._board;
    }

    //第二个方法  这个是一开始的时候就创建了 如果需要初始化的时候要写很多代码的时候就不符合了
     static readonly __BoardSing = new Board();  //静态成员  + 只读的
}

const b = Board.createBoard();
const b1 = Board.createBoard();

const bb1 = Board.__BoardSing;
const bb2 = Board.__BoardSing;

b === b1 // true
bb1 ===  bb2; //true

你可能感兴趣的:(实现单例模式)