反射 + 配置文件 实现IOC容器
生活随笔
收集整理的這篇文章主要介紹了
反射 + 配置文件 实现IOC容器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
IOC實現:
IOC容器我們僅僅停留在知道上是不行的,我們要動手做印象對更深刻,那么我給大家看一個代碼,看看代碼中IOC容器的實現。
代碼實現:
創建一個類庫:
解決方案的類庫建立:
創建一個實體類:User:
[csharp]?view plaincopyprint?
創建IUsers的接口:
[csharp]?view plaincopyprint?
創建一個實現IUsers接口的實現類:
[csharp]?view plaincopyprint?
創建測試類:
[csharp]?view plaincopyprint?
在控制臺程序中創建一個配置文件:
[csharp]?view plaincopyprint?
運行后,發現SpringHelper卻小引用。我們一般寫代碼中我們是這樣寫的:
[csharp]?view plaincopyprint?
這樣我們就可以從配置文件中將對象取出來,但是我們都不想在代碼中有多余的代碼,不能每一次new對象的時候,我們都要寫一遍這句話:IApplicationContext context = ConfigurationManager.GetSection("spring/context") as IApplicationContext;這樣就增加了我們維護代碼的成本,因此,我們將這句話封裝起來,封裝的代碼是這樣的:
創建一個類:SpringHelper:
[csharp]?view plaincopyprint?
以上的代碼我們就可以將每次讀取配置文件中的那句話去掉了,我們直接就可以寫這樣一句話就可以了:IUsers studentChangeBll = SpringHelper.GetObject<IUsers>("Users");
這里體現了封裝的重要性,先前我在做AOP的時候,我的師傅看到了類似這樣的代碼的時候,他就跟我討論過這個問題,我當時懵懵懂懂,沒有進行下一步的行動,現在想想,問題出現在我根本沒有動手去做,或者知識沒有深入到那個層次,認識這個知識的方面沒有那么深。所有問題,都要動手去做才行。
總結:
我們從上面的實踐到分析之后,我們發現其實我們看似是新的東西,其實我們已經學習過了,就像IOC容器一樣,我們學習過了反射和配置文件,我們發現其實IOC容器不就是反射和配置文件來實現的嗎,反射和配置文件是我們在大話設計模式中就已經學習到了的東西,這都不是新的東西。一個看似復雜的東西,都是有簡單的東西來組裝成的,我們知道這個,就不會對新的東西有畏懼感了。
總結
以上是生活随笔為你收集整理的反射 + 配置文件 实现IOC容器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三层架构及其优缺点
- 下一篇: Spring中IoC的入门实例