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


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

好了,前面我們講了很多的工廠模式,其中,有個很明顯的特點,工廠中,有一個方法,里面有很多的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,這樣,這個程序就活起來了。

靈活的運用反射+工廠類設計模式,就可以讓整個程序更易於擴展。 一個好的設計,可以省卻大量的時間,這樣,程序員也就不用天天加班加點的改代碼了。


關於更詳細的 反射 技術, 配置文件 技術,園友們可以閱讀一下其他大神的文章,在此不做詳細講解,有時間的話我會開辟新的專欄,專門講解基礎知識。

好了,今天先到此了,下一篇會講 狀態模式

本系列將持續更新,喜歡的小伙伴可以點一下關注和推薦,謝謝大家的支持。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM