如有一介面iuser,繼承該介面的兩個類分別為sqlserveruser和accessuser(它們之間的關係是抽象工廠模式)
而到底引用哪個類是通過db變數來決定,if(db=sqlserver)則例項sqlserveruser反之易然
簡單模式
view code
1if再要加乙個oracleuser則得加一分支,需修改該類,違反了開放-封閉原則class data
2 16
return result;
17 }
18 }
反射模式
必須引用using system.reflection;
view code
1第二個抽象工廠模式是指當前「命名空間」名稱class data
2 10 }
iuser result = (iuser)assembly.load("抽象工廠模式").createinstance("抽象工廠模式.sqlserveruser");
使用反射 抽象工廠的資料訪問 4
public idbcommand createcommand public dbdataadapter createdataadapter public idbdataparameter createparameter public void deriveparameters idbcommand...
使用反射 抽象工廠的資料訪問 2
2 定義針對於不同資料庫的工廠類 定義針對於不同資料庫的工廠類,一種資料庫就需要建立乙個相應的類。最主要 就是建立不同資料庫需要使用的對應的 connection command 等等物件。這些 很相似,所以最常見的做法就是先定義乙個基類,並且在基類中使用分支語句。例如在基類中建立連線物件的 pub...
抽象工廠 反射(一)
今天下午除錯的過程中遇到這個問題,看圖 這個問題是在那裡遇到的呢?我在配置檔案 工廠 反射實現功能時候,出現這個問題,我當時的 是這樣寫的 string strdb system.configuration.configurationmanager.connectionstrings loginda...