只有静态成员的类不是一种单例设计模式吗?上这样的课有什么缺点吗?详细的解释会有所帮助。
问问题
7325 次
5 回答
15
Robert C. Martin前段时间写过一篇关于单态模式和单例模式的区别的文章。
于 2009-04-06T09:21:16.333 回答
2
考虑一系列 Logging 类。它们都实现了“LogMessage(message, file, line_number)。一些向标准错误发送消息,一些向一组开发人员发送电子邮件,一些增加消息频率表中特定消息的计数,一些路由到 /dev/null . 在运行时,程序检查它的参数向量、注册表或环境变量,以使用哪些日志记录技术,并使用来自合适类的对象实例化日志记录单例,可能会加载最终用户提供的 DLL 来执行此操作。用纯静态单例很难复制。
于 2009-04-06T12:35:21.250 回答
1
对于单例,所有构造函数都必须是私有的,因此您只能通过函数访问。但你已经很接近它了。
于 2009-04-06T09:34:15.583 回答
1
具有所有静态成员/方法的类一种单例设计模式
类 - 不是模式。当我们谈论类时,我们可以说类实现了模式。
静态函数 - 不是成员函数,它们与全局函数相似。也许你不需要任何课程?
引用自维基百科:
在软件工程中,单例模式是一种设计模式,用于将类的实例化限制为一个对象。
根据这个定义,您的实现不是单例实现 - 您不使用常见的想法一个(或扩展定义中的几个)实例 class。
但有时(并非总是)使用所有静态函数和单例模式的类 - 没有有意义的区别。
于 2009-04-06T10:04:30.580 回答