Design patterns 是否存在必须使用单例设计模式的场景(除了使用单例之外别无选择)?
我正在寻找一种无法替代单一模式的情况。 有没有可能出现这种情况?请提供一个您实际面对的示例。我在一个使用pureMVC的应用程序中使用了一个单例(实际上有两个)。我们对这个框架引入的复杂性感到不满(通过mvc层跟踪方法调用变得复杂和分层)。因此,我们使用一个中心单体作为中介,以便更好地将层彼此分离。 我在一个在线足球队商店系统中使用了单身模式。我们将singleton模式应用于ShoppingCart类 每个应用程序实例只需要一个购物车实例。所以单身似乎最适合这种情况TL;DRDesign patterns 是否存在必须使用单例设计模式的场景(除了使用单例之外别无选择)?,design-patterns,Design Patterns,我正在寻找一种无法替代单一模式的情况。 有没有可能出现这种情况?请提供一个您实际面对的示例。我在一个使用pureMVC的应用程序中使用了一个单例(实际上有两个)。我们对这个框架引入的复杂性感到不满(通过mvc层跟踪方法调用变得复杂和分层)。因此,我们使用一个中心单体作为中介,以便更好地将层彼此分离。 我在一个在线足球队商店系统中使用了单身模式。我们将singleton模式应用于ShoppingCart类 每个应用程序实例只需要一个购物车实例。所以单身似乎最适合这种情况TL;DR 单身汉是没有“别
单身汉是没有“别无选择”的 较长版本
Singleton是一种设计模式,因此它有助于解决问题。 singleton试图解决的问题是,当您只想创建一个类的实例时。为什么要限制实例的数量?原因可能有很多,举几个例子:
总而言之,没有哪种情况下它绝对是实现某种目标的唯一途径(没有任何选择)。这里有一个简单的方法来尝试理解它
你听说过“全局变量”吗?Singleton是一个类的实例,其行为类似于全局变量。您不希望它被多次实例化。对它的所有访问都必须是对同一个实例的。可能的重复我想知道您实际使用该模式的情况?这个链接没有回答这个问题。我认为这个链接在某种程度上回答了这个问题,例如,对于日志记录,您可以使用单例,或者对于某种应用程序范围的服务对象(如数据库连接)。我通常按照单例模式在我的Java项目中创建JDBC连接。单例,意味着您将需要一个,并且只有一个,某个变量的实例。把它想象成一个应用程序缓存。但是我想知道,我们必须在哪里使用单例设计模式?在哪里,你必须只使用类的单个实例。在这种情况下,使用单例将是高效和好的。@MSHossain你可以从中得到帮助,你错过了问题,OP要求出现一种情况,即唯一的解决方案是使用单例。他在要求这样的情景。你给他的是一个关于什么是单身的解释,OP在评论中澄清了这一点:“我想确切地知道,在什么情况下,除了单身别无选择。有什么可能的情况吗?”