我什么时候应该使用Singleton模式?

时间:2018-05-18 18:39:53

标签: design-patterns singleton

据我所知,当一个类最多只有一个实例时,应该使用单例设计模式。在我的项目中,这是一个电子商店,我使用像' User',' Order'' Cart'我认为单身模式就是我以前每个实体的情况。例如,以下场景对于电子商店来说非常普遍。

一个用户一个购物车

一个购物车使一个订单。

我是否误解了Singleton模式?

3 个答案:

答案 0 :(得分:3)

是的,你误解了这种模式。

你有1:1的关系(这似乎是正确的),但设计例如用户作为单身人员意味着您的商店中只能有一个客户。

单例模式可能对身份验证服务有意义,因为如果给定用户具有有效会话,您可能希望一个单个实例应答(与具有用户可能具有的多个服务实例相反)登录到每一个。)

答案 1 :(得分:0)

我相信Singleton模式用于您希望整个程序中的对象相同的时候。例如,通过电子购物,单身人士可能是目录和库存。您自然会有很多用户,虽然在给定时间每个用户可能只有一个购物车和一个订单,但您可以存储用户之前的订单,因此用户可以拥有多个订单。无论如何,如果您在整个程序中创建了一个用户购物车,那么每个购物者都会看到相同的购物车。

答案 2 :(得分:0)

据我所知,Singleton用于一个你不想多次实例化的对象;例如您案例中所有活动/已登录用户对象的列表。

从服务器的角度来看,有多个用户,多个购物车和多个订单,因此将Singleton用于这些类是没有意义的。

然而,从客户端来看,是的,在任何给定时间只有1个用户和1个推车活动。 Singleton可以在这里使用,但仍然与Singleton的预期用例不匹配。