谁能告诉我一个很好的单例模式的例子?我还有一个疑问,下面的场景是单例模式的场景:
当我们在局域网中连接了许多打印机,但只有一个打印机队列时?
发布于 2010-04-06 21:20:57
Singleton是一种软件模式。
C#中的Here就是一个例子。
在LAN上使用单个队列更多的是一个硬件/网络设计问题,而不是一个软件概念,所以实际上并不适用。如果您在软件中对这样的事情进行建模,并且必须确保只有一个队列,那么它将是适用的。
发布于 2010-04-06 21:22:41
我个人使用单例的规则是,只有在有多个实例的错误情况下才使用,并且需要全局访问。因此,我想说打印队列不是单例的好选择:因为您不需要全局访问,而且有多个打印队列是错误的,这也是有争议的。事实上,虽然可能有一个“物理”打印队列(例如,在某个打印服务器上),但应用程序并不关心这个队列,它只需要提交“作业”:
PrintJobScheduler pjs;
pjs.SubmitPrintJob(myPrintJob);你不需要我想象中的PrintJobScheduler是一个单例,即使它可能在网络上的某个地方与一个“单例”服务对话。
发布于 2010-04-06 21:51:59
单例背后的一般思想是,它是一个对象,对于它来说,拥有多个对象是没有意义的,并且可能需要在整个程序中访问它。
我最终一直在使用的是一个程序configuration.
我的典型配置单例将包含IP地址、设备名称和系统限制等内容。在第一次调用时,它通常会读取配置文件(有时是和/或Windows上的系统注册表),并为在那里找不到的项加载默认值。一个程序有多个配置真的是没有意义的,所以所有这些东西都应该在整个程序中只读一次。此外,配置项可能需要由系统中所有不同的、否则不相关的类访问。
https://stackoverflow.com/questions/2585022
复制相似问题