天天看點

使用反射+抽象工廠的資料通路(2)

<b>2</b><b>、定義針對于不同資料庫的工廠類</b>

定義針對于不同資料庫的工廠類,一種資料庫就需要建立一個相應的類。最主要代碼就是建立不同資料庫需要使用的對應的Connection,Command等等對象。這些代碼很相似,是以最常見的做法就是先定義一個基類,并且在基類中使用分支語句。

例如在基類中建立連接配接對象的代碼:

public <b>IDbConnection</b> CreateConnection(string DataBaseType)

{

              switch (DataBaseType )

                     {

                            case "SqlServer":

                            {

                                   return new System.Data.Oledb.SqlConnection(sConnectionString);

                            }

                            case "Oracle":

                                   return new System.Data.Oledb.SqlConnection (sConnectionString);

                            case "Access ":

                            …

                     }

}

這樣的代碼沒有使用反射機制,類的執行個體化被“寫死”在代碼中,也就是說,如果需要添加其他資料庫,不得不打開源代碼,添加一個分支并重新編譯。為了去處這種分支結構,并且在運作時根據系統提供的參數動态執行個體化資料庫對象,我們引入了反射機制。

<b>   </b>

<b></b>

<b>   本文轉自My_King1 51CTO部落格,原文連結:</b><b>http://blog.51cto.com/apprentice/1360591</b><b>,如需轉載請自行聯系原作者</b>