首先給大家拜個(gè)晚年,祝大家新春快樂,萬事如意,雞年大吉。
好了,前面我們講了很多的工廠模式,其中,有個(gè)很明顯的特點(diǎn),工廠中,有一個(gè)方法,里面有很多的swich case 分支,我們前面說過,我們可以用反射的技術(shù)來避免swich case 分支。ok,那么,今天,我們來用反射+抽象工廠模式 來完善一下 抽象工廠模式
首先,給大家復(fù)習(xí)一下,什么是反射: Assembly.Load("程序集名稱").CreateInstance("命名空間.類名"); 這是它的語法。需要using System.Reflection;
之前我們的寫法是 IUser result = new SqlserverUser();
我們用反射就可以 IUser result=(IUser)Assembly.Load("程序集名稱").CreateInstance("命名空間.類名"); 這是它的語法。需要using System.Reflection;
實(shí)際效果是一樣的,但這兩種寫法有什么區(qū)別嗎?
同樣是實(shí)例化 SqlserverUser 類,這兩種寫法的區(qū)別就是,用反射寫,SqlserverUser 類 是當(dāng)作字符串變量出現(xiàn)在語句中的,這樣,對(duì)于一個(gè)字符串來說,那就非常靈活了。這就相當(dāng)于是一個(gè)寫死在程序里,一個(gè)當(dāng)作變量出現(xiàn)在程序里 一樣,哪個(gè)更加靈活不言而喻了。
那這樣,我們就可以將數(shù)據(jù)庫(kù)操作封裝成dll文件,然后通過配置文件,讓程序靈活加載dll,這樣,這個(gè)程序就活起來了。
靈活的運(yùn)用反射+工廠類設(shè)計(jì)模式,就可以讓整個(gè)程序更易于擴(kuò)展。 一個(gè)好的設(shè)計(jì),可以省卻大量的時(shí)間,這樣,程序員也就不用天天加班加點(diǎn)的改代碼了。
關(guān)于更詳細(xì)的 反射 技術(shù), 配置文件 技術(shù),園友們可以閱讀一下其他大神的文章,在此不做詳細(xì)講解,有時(shí)間的話我會(huì)開辟新的專欄,專門講解基礎(chǔ)知識(shí)。
好了,今天先到此了,下一篇會(huì)講 狀態(tài)模式
本系列將持續(xù)更新,喜歡的小伙伴可以點(diǎn)一下關(guān)注和推薦,謝謝大家的支持。
努力,不是為了要感動(dòng)誰,也不是要做給哪個(gè)人看,而是要讓自己隨時(shí)有能力跳出自己厭惡的圈子,并擁有選擇的權(quán)利。記住,用自己喜歡的方式過一生。