我应该使用singleton,static Class还是`shared`来连接多个类的数据库?

时间:2017-05-26 12:34:07

标签: database class singleton d static-classes

我正在编写连接到数据库的应用程序。我需要能够使用来自许多类的DataBase连接。

class Database
{
  auto MyConnection = new Connection("..."); // create connection

  void calc()
  {
    MyConnection.query("..."); // use it
  }
}

但我需要从每个班级获得MyConnection的访问权限吗?我应该Database上课static吗?或者也许我应该使用Singleton模式?或者将MyConnection设为shared

例如配置怎么样?以shared为例制作它是否是个好主意?

或者例如我可以在main之前全局声明连接语句吗?像:

MySQLPool MyConnection;

void main()
{
//...
}

然后从MyConnection或从DB类启动static this() { }

1 个答案:

答案 0 :(得分:0)

查看此处所述的Repository模式:http://web.archive.org/web/20150404154203/https://www.remondo.net/repository-pattern-example-csharp/

您应该考虑应用程序的体系结构。我使用这种方法然后我会有一个名为db(不是静态而不是单例)的类,其方法如下:

Read
Scaler
Execute
Insert
etc 

您的存储库图层应与您的域图层分开。

根据我的经验,这使得代码可以测试。