我正在爲C#設計數據庫包裝。 下面是兩個選擇,我有:C#數據庫包裝設計
選項A:
class DBWrapper:IDisposable
{
private SqlConnection sqlConn;
public DBWrapper()
{
sqlConn = new SqlConnection("my connection string");
sqlConn.Open();
}
public DataTable RunQuery(string Sql)
{
implementation......
}
public Dispose()
{
if(sqlConn != null)
sqlConn.Close();
}
}
選項B:
class DBWrapper
{
public DBWrapper()
{
}
public DataTable RunQuery(string Sql)
{
SqlConnection sqlConn = new SqlConnection("my connection string");
.....implementation......
sqlConn.Close();
}
}
對於選項時,類實例化打開的連接。因此,無論調用者調用RunQuery多少次,連接總是準備就緒。但是,如果應用程序在應用程序的早期初始化DBWrapper,則連接將會剛剛打開,在應用程序完成之前什麼也不做。另外,它可能會在執行過程中實例化許多DBWrapper。所以,這有點浪費資源。
對於選項B,它沒有A選項的問題選項,但每次調用者調用RunQuery時都必須打開和關閉一個新連接。我不確定這會對錶演造成多大的傷害。
請分享您的專業知識。謝謝你的閱讀。
他們往往會在這裏得到一個壞名字,但有一個Singleton設計模式的閱讀,這是我唯一一次使用單身人士 – acqu13sce 2010-08-24 05:56:01
@ acqu13sce:爲什麼壞名字?模擬能力的原因是什麼? – kbrimington 2010-08-24 06:00:29
只是我通過閱讀包括這個社區維基閱讀一些評論http://stackoverflow.com/questions/137975/what-is-so-bad-about-singletons 我個人認爲他們有他們的位置,但也許做被過度使用 – acqu13sce 2010-08-24 06:11:16