倾向于使用单例设计模式来获得数据库连接

汤玛士

我看到许多开发人员为数据库连接创建Singleton类。我只想知道应用程序将被许多用户使用是好是坏。如果不好,请讨论上述模式可能发生的所有不良情况。

public class ConnSingleton
    {
        private static ConnSingleton dbInstance;
        private readonly SqlConnection conn = new SqlConnection(@"Data Source=127.0.0.1;database=soa;User id=sa1;Password=sa1;");       

        private ConnSingleton()
        {
        }

        public static ConnSingleton getDbInstance()
        {
            if (dbInstance == null)
            {
                dbInstance = new ConnSingleton();
            }
            return dbInstance;
        }

        public SqlConnection GetDBConnection()
        {
            try
            {
                conn.Open();
                Console.WriteLine("Connected");
            }
            catch (SqlException e)
            {
                Console.WriteLine("Not connected : "+e.ToString());
                Console.ReadLine();
            }
            finally
            {
                Console.WriteLine("End..");
               // Console.WriteLine("Not connected : " + e.ToString());
                Console.ReadLine();
            }
            Console.ReadLine();
            return con;
        }

    }

public static void Main(string[] args)
{
     ConnSingleton cs = ConnSingleton.getDbInstance();
     cs.GetDBConnection();           
     Console.WriteLine("Connection Established");
}
敦促

我看不到这堂课有什么好处。如果您这样想(但我不赞成这样做),您将不会从一堆静态方法中受益。单例实例有什么用处?您如何将SqlConnection变量放在using块中?

我认为单例对于想要全局变量的人来说是一种过度使用的模式,但是读了一本书提到全局变量是不好的。现在,他们找到了另一本书,指出“ Singleton”是一种模式,而模式是“良好”,他们终于有了借口来拥有全球性的借口。

作为全局变量是单例副作用如果将其用于副作用,则不是很好地使用该模式。我会说这是一种虐待。

单例几乎不可能进行单元测试。这甚至没有线程保存,并且在非单例上也没有任何用处。所以从我的角度来看...删除该类。

多少人使用该应用程序无关紧要。每个人都有自己的过程和自己的单身人士,可能会很糟糕。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用单例设计模式来建立和关闭 JDBC 连接?

来自分类Dev

单例连接和数据库池

来自分类Dev

PHP单例数据库连接模式

来自分类Dev

ActiveRecord :: ConnectionTimeoutError:在5.000秒(等待的5.000秒)内无法获得数据库连接

来自分类Dev

{Spring Boot + Hibernate + MySQL}无法获得数据库连接

来自分类Dev

Java 8升级后无法获得数据库连接

来自分类Dev

单例设计模式

来自分类Dev

获得数据库中的最高价值

来自分类Dev

如何获得数据库中表的空闲时间?

来自分类Dev

数据库连接-单例。如何在其中传递用户数据?

来自分类Dev

数据库处理程序全局为 xamarin 形式的单例模式

来自分类Dev

使用Singleton设计模式正确打开/关闭数据库

来自分类Dev

使用数据库的观察者设计模式

来自分类Dev

设计模式:单例混淆

来自分类Dev

单例设计模式-Java

来自分类Dev

数据库连接模式

来自分类Dev

使用单例设计模式进行序列化

来自分类Dev

建立数据库查询的设计模式

来自分类Dev

数据库:类别特征的设计模式

来自分类Dev

寻找一种设计模式来填充没有数据库的类

来自分类Dev

寻找一种设计模式来填充没有数据库的类

来自分类Dev

如何在node.js中将单例设计模式与mysql连接和池一起使用

来自分类Dev

如何在node.js中将单例设计模式与mysql连接和池一起使用

来自分类Dev

使用单例模式

来自分类Dev

数据库设计:多个用户实体。单表或多表

来自分类Dev

在数据库更新时使用Spring和Hibernate更新单例对象

来自分类Dev

什么时候使用数据库的单例实例合适?

来自分类Dev

无法从单例对象打开SQLite数据库

来自分类Dev

了解Java单例设计模式

Related 相关文章

热门标签

归档