自己写的程序有必要用单例吗
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自己写的程序有必要用单例吗相关的知识,希望对你有一定的参考价值。
自己写的程序有必要用单例吗
看情况吧。单例可以防止程序跑出多实例,浪费系统资源。比如我们的界面应用程序,一般只允许用户跑一个,所以控制成单例》单例一般用在一下几种情况中:
1.工厂模式的那个工厂。
2.服务器定位模式。
2.一些应用程序的运行,防止跑出多个实例读写同一个数据,造成混乱等。
某些应用程序可能反应比较慢,多点击了几次启动,如果没有控制成单例,那就跑起好几个进程了,造成资源的浪费。虽然自己的代码,看做什么吧,写东西还是要考虑到各方面的,这样养成良好的思维习惯和严谨的逻辑。 当然用这个模式要慎重,某些不该用单例的时候,却使用了单例,那样也会引起很严重的错误,比如struts的Action,如果你限制成了单例,那你的系统处理效率那就太差劲了。 参考技术A 不一定啊,当你不需要创建多个对象时就用单例否则也不一定要用到 参考技术B 单例也是要分情况的。
单例还是多例,只是特定场景下一个设计的方法,主要是要领悟为什么要用单例。
而有些情况下反而不能用单例,比如数据库连接池、日志文件读写,都是典型的多例咯~!本回答被提问者采纳 参考技术C 具体情况具体分析, 使用的多就用单。 参考技术D 练习单例怎么用有这个必要
我应该使用单例吗?
【中文标题】我应该使用单例吗?【英文标题】:Should I use a singleton.? 【发布时间】:2021-07-10 13:03:31 【问题描述】:我打算使用 c++ 和 open gl 制作一个 3D 场景编辑器应用程序。而且我必须跟踪当前加载的项目和不同的场景,它还包含用户偏好和其他内容。我能想到的最好的解决方案是将它们包装在一个单独的上下文类中。有更好的方法吗?
【问题讨论】:
【参考方案1】:这可能不是一个好主意。一个原因是技术上的。实际的 OpenGL 上下文的生命周期是有限的,并且比应用程序本身要短得多,通常与您要输出到的表面有关。您需要在可视化窗口准备好后初始化上下文,并在窗口消失之前取消初始化它。在窗口消失时尝试这样做可能会根据平台结束未定义的行为。在某些情况下,您可能需要多个上下文。
另一个原因是,它看起来不像是适当的职责分离。用户设置不是上下文的一部分,但有些可能只影响单个渲染通道(复数形式)。您可能会有 Preferences、Renderer,它将作为 Context Manager 的接口、Geometries、Textures(或材质)分开,还有一个 Scene Manager(想想 Blender 或 DAZ studio 中的场景树,场景中的每个项目都可以有单独的用户设置,关于如何将它们可视化)。
【讨论】:
以上是关于自己写的程序有必要用单例吗的主要内容,如果未能解决你的问题,请参考以下文章