【问题标题】:Implementation of the Singleton pattern on the sql-connection class in c#c#中sql-connection类上单例模式的实现
【发布时间】:2021-12-10 20:16:50
【问题描述】:

我最近学习了单例模式,如何在sql-connection类上实现单例模式?以及如何将连接详细信息(数据库名称和表名称)传递给该 Singleton 的每个实例?

【问题讨论】:

  • 实现单例模式是错误的。
  • 到该单例的每个实例”单例只有一个实例,这就是为什么它被称为单例。无论如何,如前所述,您永远不会尝试缓存数据库连接,您会产生一大堆其他问题
  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: java c# mysql sql-server


【解决方案1】:

我尝试通过这种方式实现它:

public  class SqlConnection
{
    private static Dictionary<string, SqlConnection> _InsDictionary = new Dictionary<string, SqlConnection>();
    private string _databaseName;
    private string _tableName;
    private SqlConnection(string databaseName,string tableName)
    {
        _databaseName = databaseName;
        _tableName = tableName;
    }
    public static SqlConnection Ins(string databaseName,string tableName)
    {
        if (_InsDictionary.TryGetValue($"{databaseName}_{tableName}",out var ins))   
        {
            ins = new SqlConnection(databaseName,tableName);
            _InsDictionary.Add($"{databaseName}_{tableName}",ins);
        }
            
        return ins;
    }
}

   void Main()
    {

        SqlConnection sqlConnectionA = SqlConnection.Ins("db1","tb1");
        SqlConnection sqlConnectionB = SqlConnection.Ins("db1","tb2");
            
    }

【讨论】:

  • 这不是单例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-27
  • 1970-01-01
  • 2011-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多