0
我正在C#中开发应用程序(但这不相关,因为我不想使用任何语言工具),我需要处理到数据库的连接。我会避免明确创建每个方法的接口,如:提供全局访问数据库处理程序
private void btnAnteprima_Click(object sender, EventArgs e)
{
SqlConnection myConnection = new SqlConnection("user id=***;" +
"password=***;server=***;" +
"database=***");
myConnection.Open();
SqlDataReader myReader = null;
SqlCommand myCommand = new SqlCommand("select * from *** where IDCliente=*", myConnection);
myReader = myCommand.ExecuteReader();
while (myReader.Read())
{
MessageBox.Show(myReader["xyz"].ToString());
}
}
我想是这样的:
private void btnAnteprima_Click(object sender, EventArgs e)
{
SqlReader myReader = DbFactory.ExecuteQuery("select * from *** where IDCliente=*");
while (myReader.Read())
{
MessageBox.Show(myReader["xyz"].ToString());
}
}
据我所知,使用Singleton模式是没用甚至有害的:性能条款。我徘徊于工厂模式来实现这一点,但我无法弄清楚如何做到最好。你有没有例子,纸张来做到这一点?我不想重新发明轮子,我只想使用正确的设计模式,并了解车轮背后的原因。
我很确定你使用C#*的事实是相关的。每种语言都有其数据库抽象API和依赖注入框架,并且很难给出与语言无关的最佳实践。单身反模式不是一个模式,因为它的性能,但由于它引起的耦合和缺乏可测试性。 – 2013-04-23 11:24:42
我知道这一点,但我会把我的知识推到框架API和设施之外...... – 2013-04-23 12:15:18
这是一种说“我想重新发明轮子而不是使用标准方式”的新方式吗? – 2013-04-23 12:52:03