说说个人的看法:一般是为了更好的掌握如何初始化这个对象以及掌握初始化的时机。
如果全static的话,其实根本没必要用class,用namespace更好。
另外说明一下,单例模式标准的调用方法不是每次getInstance。而是初始化的时候getInstance把对象保存下来,用的时候直接调用那个对象,而且这个单例对象是常常需要通过参数传递给其它对象的。也就是说一个模块可能只会出现一次getInstance,其余都是直接使用获得的对象本身。
总的来说,单例模式操作的是对象,它随时可以变成非单例模式,只要把getInstance变成对对象工厂的调用即可。而用static的场合就不同了。
全static的问题在于界面上(interface)缺乏一个严格的初始化定义。单例的话则很容易理解,就是构造器/实例返回函数。如果一个类的static成员还要引用其他类的static成员,那就更乱了。
此外,这种方式缺乏灵活性,哪天你不想单例了代码会很难改。单例模式则很容易,改一下实例返回函数就行了。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有