我应该让我的数据库 class 静态吗
Should I make my database class static
在一个 ASP 网络项目中,我有一个 class 'SQL' class 来处理与数据库的连接。
在 class 我没有使用字段或属性
每个方法都有类似这样的结构:
try
{
using (SqlConnection conn = new SqlConnection(GlobalSettings.Connections.ConnString))
{
conn.Open();
//dostuff with connection
}
}
catch (SqlException e)
{
Log.GenericLog(String.Format("SQL Exception message - {0}. Exception stacktrace - {1}", e.Message,
e.StackTrace));
}
catch (Exception e)
{
Log.GenericLog(String.Format("Exception message - {0}. Exception stacktrace - {1}", e.Message,
e.StackTrace));
}
在这里使用静态 class 安全吗?
如果您愿意,可以使用静态 class。但是请考虑可测试性。当它是静态的时候,测试起来有多容易。其余代码测试引用此静态 class 的难易程度。为什么不使用存储库模式作为对数据访问的抽象,使其更易于测试。然后你会想要注入数据访问代码和静态 class 不会削减芥末。
在一个 ASP 网络项目中,我有一个 class 'SQL' class 来处理与数据库的连接。
在 class 我没有使用字段或属性
每个方法都有类似这样的结构:
try
{
using (SqlConnection conn = new SqlConnection(GlobalSettings.Connections.ConnString))
{
conn.Open();
//dostuff with connection
}
}
catch (SqlException e)
{
Log.GenericLog(String.Format("SQL Exception message - {0}. Exception stacktrace - {1}", e.Message,
e.StackTrace));
}
catch (Exception e)
{
Log.GenericLog(String.Format("Exception message - {0}. Exception stacktrace - {1}", e.Message,
e.StackTrace));
}
在这里使用静态 class 安全吗?
如果您愿意,可以使用静态 class。但是请考虑可测试性。当它是静态的时候,测试起来有多容易。其余代码测试引用此静态 class 的难易程度。为什么不使用存储库模式作为对数据访问的抽象,使其更易于测试。然后你会想要注入数据访问代码和静态 class 不会削减芥末。