回到目錄

什么是LindAspects

之前寫了關(guān)于Aspects的文章《Lind.DDD.Aspects通過Plugins實(shí)現(xiàn)方法的動(dòng)態(tài)攔截~Lind里的AOP,今天主要在設(shè)計(jì)思想上進(jìn)行刨析一下,對(duì)緩存攔截器一直沒有實(shí)現(xiàn),所以文章了也一直沒有發(fā)出來,讓大家等這么久實(shí)在不好意思。LindAspects主要是面向切面編程AOP的一種實(shí)現(xiàn),就像MVC框架里的Filter,F(xiàn)ilter會(huì)自己注入到了每個(gè)Action執(zhí)行的各個(gè)環(huán)節(jié)里,而我們可以直接實(shí)現(xiàn)自己的Filter即可,例如只要是繼承ActionFilter,那么你的Filter在Action執(zhí)行時(shí)就可以被動(dòng)態(tài)執(zhí)行,這種設(shè)計(jì)就相當(dāng)于把整個(gè)Action橫切開來,注入我們需要的代碼,這大概念就是面向切面(方面)編程的真諦吧!

LindAspects原理是什么

主要通過Emit實(shí)現(xiàn)對(duì)方法的重寫,這個(gè)方法不向Unity.Interception非要是虛方法,咱們的Emit本質(zhì)上是建立一個(gè)新的類型,然后建立一個(gè)新的方法,這個(gè)方法里再去執(zhí)行當(dāng)前被攔截的方法的主體,然后通過主體方法實(shí)現(xiàn)的AspectAttribute來控制是在主體執(zhí)行前注入還是在主體執(zhí)行之后注入!

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式