用反射技術替換工廠種的switch分支(14)

2022-02-14 06:27:47 字數 823 閱讀 2030

首先給大家拜個晚年,祝大家新春快樂,萬事如意,雞年大吉。

好了,前面我們講了很多的工廠模式,其中,有個很明顯的特點,工廠中,有乙個方法,裡面有很多的swich case  分支,我們前面說過,我們可以用反射的技術來避免swich case 分支。ok,那麼,今天,我們來用反射+抽象工廠模式  來完善一下 抽象工廠模式

首先,給大家複習一下,什麼是反射:   assembly.load("程式集名稱").createinstance("命名空間.類名"); 這是它的語法。需要using system.reflection;

之前我們的寫法是 iuser result = new sqlserveruser();

我們用反射就可以 iuser result=(iuser)assembly.load("程式集名稱").createinstance("命名空間.類名"); 這是它的語法。需要using system.reflection;

實際效果是一樣的,但這兩種寫法有什麼區別嗎?

同樣是例項化 sqlserveruser 類,這兩種寫法的區別就是,用反射寫,sqlserveruser 類 是當作字串變數出現在語句中的,這樣,對於乙個字串來說,那就非常靈活了。這就相當於是乙個寫死在程式裡,乙個當作變數出現在程式裡 一樣,哪個更加靈活不言而喻了。

那這樣,我們就可以將資料庫操作封裝成dll檔案,然後通過配置檔案,讓程式靈活載入dll,這樣,這個程式就活起來了。

靈活的運用反射+工廠類設計模式,就可以讓整個程式更易於擴充套件。 乙個好的設計,可以省卻大量的時間,這樣,程式設計師也就不用天天加班加點的改**了。

用Emit技術替代反射

system.reflection.emit命名空間類可用於動態發出microsoft中間語言 msil 以便生成的 可以直接執行。反射也用於獲取有關類及其成員的資訊。換句話說,反射是一種技術,允許您檢查描述型別及其成員的元資料,你可能以程式設計方式訪問過元件物件模型型別庫,net中的反射非常相似,...

智慧型工廠用到的技術 規劃智慧型工廠的十種解決方案

在當前智慧型製造的熱潮之下,很多企業都在規劃建設智慧型工廠。眾所周知,智慧型工廠的規劃建設是乙個十分複雜的系統工程,為了少走彎路,本文整理了在建設中要考慮的十個核心要素以及需要關注的重點維度。1 資料的採集和管理 資料是智慧型工廠建設的血液,在各應用系統之間流動。在智慧型工廠運轉的過程中,會產生設計...

09 框架的概念及用反射技術開發框架的原理

框架的概念及用反射技術開發框架的原理.1.反射的作用 實現框架功能 框架與框架要解決的核心問題 我做房子賣給使用者住,由使用者自己安裝門窗和空調,我做的房子就是框架,使用者需要使用我的框架,把門窗插入進我提供的框架中,框架與工具類有區別,工具類被使用者的類呼叫,而框架是呼叫使用者提供的類。框架要解決...