首先給大家拜個晚年,祝大家新春快樂,萬事如意,雞年大吉。 好了,前面我們講了很多的工廠模式,其中,有個很明顯的特點,工廠中,有一個方法,裡面有很多的swich case 分支,我們前面說過,我們可以用反射的技術來避免swich case 分支。ok,那麼,今天,我們來用反射+抽象工廠模式 來完善一下 ...
首先給大家拜個晚年,祝大家新春快樂,萬事如意,雞年大吉。
好了,前面我們講了很多的工廠模式,其中,有個很明顯的特點,工廠中,有一個方法,裡面有很多的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,這樣,這個程式就活起來了。
靈活的運用反射+工廠類設計模式,就可以讓整個程式更易於擴展。 一個好的設計,可以省卻大量的時間,這樣,程式員也就不用天天加班加點的改代碼了。
關於更詳細的 反射 技術, 配置文件 技術,園友們可以閱讀一下其他大神的文章,在此不做詳細講解,有時間的話我會開闢新的專欄,專門講解基礎知識。
好了,今天先到此了,下一篇會講 狀態模式
本系列將持續更新,喜歡的小伙伴可以點一下關註和推薦,謝謝大家的支持。