2013-04-23 78 views
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模式是沒用甚至有害的:性能條款。我徘徊於工廠模式來實現這一點,但我無法弄清楚如何做到最好。你有沒有例子,紙張來做到這一點?我不想重新發明輪子,我只想使用正確的設計模式,並瞭解車輪背後的原因。

+0

我很確定你使用C#*的事實是相關的。每種語言都有其數據庫抽象API和依賴注入框架,並且很難給出與語言無關的最佳實踐。單身反模式不是一個模式,因爲它的性能,但由於它引起的耦合和缺乏可測試性。 – 2013-04-23 11:24:42

+0

我知道這一點,但我會把我的知識推到框架API和設施之外...... – 2013-04-23 12:15:18

+0

這是一種說「我想重新發明輪子而不是使用標準方式」的新方式嗎? – 2013-04-23 12:52:03

回答