乙個簡單的aop框架
aop非常的有趣,它可以幫助我們解決很多**橫向的很多問題,如果你不了解aop.請參看相關的文章.
現在介紹的乙個aop框架,來自codeproject 作者andrea bioli.文章名稱the ******st aop scenario in c#
現在我們來使用這個框架來演示乙個aop的強大.
首先建立乙個類,名位******aop.這個類必須繼承aopbaseclass.表示這個類要使用乙個控制器來控制.**如下
class ******aop:aopbaseclass
public void test1()
public void test2()
public void nomatchermethod()
}前面提到了控制器.現在我們來建立自己的控制器類,這個類必須繼承aopbasecontroler(這裡著名,這裡我改良過的)
public class mycontroller : aopbasecontroller
public override void begin(object o, system.runtime.remoting.messaging.imessage msg)
public override void end(object o, system.runtime.remoting.messaging.imessage msg)
public override void exception(object o, system.runtime.remoting.messaging.imessage msg)
}這裡覆蓋了三個方法begin,end和exception表示在使用aop的類的方法中我們可以新增這三個方法.
我們現在來看入口函式
aopconfig.setassoc(typeof(******aop), typeof(mycontroller), new regexmethnamematcher("test"));
******aop aop = new ******aop();
aop.test1();
這裡的第一行表示在******aop類和mycontroller之間的聯合,那麼通過什麼來聯合這兩個類呢?regexmethnamematcher這個類可以用來查詢******aop裡面的方法那些可以使用mycontroller提供的方法.
上面的例子表明了,我們的controller運用到了匹配test的方法上.
**的輸出結果為
begin
test1
end我們在******aop類test1方法上新增乙個throw new exception(「testexception
「);來丟擲乙個異常.在執行剛才的**.輸出結果為
begin
test1
endexeption
這個說明了,當丟擲異常的時候,呼叫控制器的exception方法.
好了,我們回到入口函式.我們新增如下的**
aop.test2();/
我們可以看到輸出test2()也運用了控制器.
如果新增
aop. nomatchermethod();就可以看出來,這個函式因為和matcher不匹配,所以沒有運用控制器.
體會到aop所帶來的另外一種**復用.
框架獲得請檢視codeproject
乙個簡單的驗證框架
工作中經常要進行表單驗證,乙個 做下來,自己也積累了一套。放出來做個備份!框架的兩個核心方法,乙個是用於處理提示資訊,另乙個是呼叫驗證函式!用於顯示錯誤提示 html 格式 param id 元素的css表示式 param status 0 表示失敗,這時第三個引數有效,顯示這紅色字 1表示成功,會...
乙個簡單的Python MVC框架(4)
前面都是準備,這裡是整個web mvc框架的核心地方,稍微多介紹一下。核心類是乙個叫dspth的模組。這裡我沒有處理路由,乙個是不太熟,另外乙個是主要是體會架構。我用的路由規則如下 1 用url的位址引數進行路由,有兩個引數,乙個是ctr,表示控制類,乙個是act表示執行的方法 2 所有執行方法都約...
乙個超級簡單的php框架
最近自己寫了乙個php框架,github位址如下 blakefez php framework command 該目錄用於存放cli模式下的command類 controller 該目錄用於存放cgi模式下的controller類 frame 該目錄用於存放框架的核心 blakefez.php 這是...