您的代码是静态工厂方法的典型示例。
工厂模式是软件设计模式的一部分,它是软件设计中给定上下文中常见问题的通用可重用解决方案。我可以建议您阅读Head First Design Patterns,这是一本非常好的入门书籍,可以理解设计模式。
关于您的代码的一些建议:
- 使工厂方法静态,它不使用任何实例变量等。
- 不相关但是,你不需要在你的工厂方法中使用局部变量,你可以直接返回连接。
现在您的方法如下所示:
static SqlConnection CreateConnection(){
return new SqlConnection(ConfigurationManager.ConnectionStrings["IMS"].ConnectionString);
}
您可能想在调用 SqlConnection 的构造函数之前检查 ConnectionStrings["IMS"] 是否为空。此类中不需要进一步的错误处理,因为它不会启动连接。
假设您想返回一个打开的连接并以相同的方法处理连接错误:
static SqlConnection CreateConnection()
{
if (ConfigurationManager.ConnectionStrings["IMS"] == null)
{
throw new Exception("Connection string not found in the configuration file.");
}
var sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["IMS"].ConnectionString);
try
{
sqlConnection.Open();
}
catch (Exception exception)
{
throw new Exception("An error occured while connecting to the database. See innerException for details.", exception);
}
return sqlConnection;
}
如果需要,您可以创建自己的异常类以在以后处理这些异常。请参阅ASP MVC N 层异常处理。如果发生异常,您也可以返回 null,但请先检查“返回 null 是否设计错误? ”。