首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单例模式示例

单例模式示例
EN

Stack Overflow用户
提问于 2010-04-06 21:15:30
回答 12查看 26.7K关注 0票数 15

谁能告诉我一个很好的单例模式的例子?我还有一个疑问,下面的场景是单例模式的场景:

当我们在局域网中连接了许多打印机,但只有一个打印机队列时?

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2010-04-06 21:20:57

Singleton是一种软件模式。

C#中的Here就是一个例子。

在LAN上使用单个队列更多的是一个硬件/网络设计问题,而不是一个软件概念,所以实际上并不适用。如果您在软件中对这样的事情进行建模,并且必须确保只有一个队列,那么它将是适用的。

票数 8
EN

Stack Overflow用户

发布于 2010-04-06 21:22:41

我个人使用单例的规则是,只有在有多个实例的错误情况下才使用,并且需要全局访问。因此,我想说打印队列不是单例的好选择:因为您不需要全局访问,而且有多个打印队列是错误的,这也是有争议的。事实上,虽然可能有一个“物理”打印队列(例如,在某个打印服务器上),但应用程序并不关心这个队列,它只需要提交“作业”:

代码语言:javascript
复制
PrintJobScheduler pjs;
pjs.SubmitPrintJob(myPrintJob);

你不需要我想象中的PrintJobScheduler是一个单例,即使它可能在网络上的某个地方与一个“单例”服务对话。

票数 6
EN

Stack Overflow用户

发布于 2010-04-06 21:51:59

单例背后的一般思想是,它是一个对象,对于它来说,拥有多个对象是没有意义的,并且可能需要在整个程序中访问它。

我最终一直在使用的是一个程序configuration.

我的典型配置单例将包含IP地址、设备名称和系统限制等内容。在第一次调用时,它通常会读取配置文件(有时是和/或Windows上的系统注册表),并为在那里找不到的项加载默认值。一个程序有多个配置真的是没有意义的,所以所有这些东西都应该在整个程序中只读一次。此外,配置项可能需要由系统中所有不同的、否则不相关的类访问。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2585022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档