用于 MongoDB 的单例

Posted

技术标签:

【中文标题】用于 MongoDB 的单例【英文标题】:Singleton for MongoDB 【发布时间】:2017-03-10 11:15:00 【问题描述】:

我应该为 MongoDB 使用单例模式吗?我目前正在使用 Photon Engine 和 MongoDB 为回合制游戏构建游戏服务器。

public sealed class GSEntities

    #region Fields
    public IMongoClient Client;
    public IMongoDatabase Database;

    private static GSEntities _instance;
    private static readonly Object sync = new object();

    public static GSEntities Instance
    
        get
        
            if (_instance == null)
            
                lock (sync)
                
                    if (_instance == null)
                        _instance = new GSEntities();
                
            
            return _instance;
        
    

这很好还是我应该使用其他模式,比如 Repository ?

感谢您的帮助! :)

【问题讨论】:

【参考方案1】:

这很好还是我应该使用其他模式,比如 Repository ?

一般来说,您应该在需要时使用模式当你有时间的时候,或者它看起来很酷或者它不会伤害。

所以问问自己,你需要单身吗?我的猜测是否定的。这也可以是一个普通的类,你碰巧只有一个实例。

需要存储库模式吗?我的猜测也不会。描述说:

使用类集合接口访问域对象,在域和数据映射层之间进行调解。

只有你可以决定。同样,在需要时实施不要在您喜欢或其他人认为它很酷时实施。

【讨论】:

以上是关于用于 MongoDB 的单例的主要内容,如果未能解决你的问题,请参考以下文章

Node.JS中使用单例封装MongoDB

尝试删除Node express mongoDb中的单行时删除所有记录

MongoDB复制集原理

MongoDB开发最佳实践

使用的vueelementUIvuexexpressmongoDB的单页应用

我所理解的Mongodb 的优势