单例模式最简单的写法

说这话,我想你大概率没有参与过10人以上项目吧?
如果还这样坚持, 就当我没说,你开心就好

WINDOWS LINUX IOS的API的开发者都是多少人,要面对多少使用者?调用会出错吗?

import Singleton from “./Singleton”;

@Singleton

export class testModel {

declare static ins: testModel;

public log(arg: any) {

    console.log(arg);

}

}

{

testModel.ins.log(1111);

}

让AI写个单例注解

去看这个帖子的逆天写法吧 cocos编辑器里自动执行代码创建节点无法删除 - Creator 3.x - Cocos中文社区

我谢谢你啊

很好的反面案例,楼上说的 “很难保证初始化顺序,如果有人在构造函数里整花活,就是一场灾难” 知道了吧

你看看你 这不整花活了 :rofl:

这里的人说话真好听

export default new class { }

单例是做游戏开发,滥用最多的设计模式,其次是观察者模式;用起来的时候舒服,以后遇到的坑就知道了

这个写法的问题是,允许使用者手贱去清空单例,而且清空了就没了。又因为你没有申明构造函数的访问域,所以也可以自己去创建单例的实例。这导致了你这个单例并不安全,而且只是一个有这么个“单例”实例的类,本质上我在外面些一个[new A(), newA[], new A[]]的数组都行。

所以好的单例写法最重要的两点就是,构造函数必须是private的,instance的获取只能通过getter去拿。