DPIGGo 動(dòng)態(tài)代理庫(kù)
DPIG 是一個(gè)實(shí)驗(yàn)性質(zhì)的 Go 語(yǔ)言動(dòng)態(tài)代理庫(kù),它不依賴(lài)代碼生成技術(shù),可以對(duì)接口的實(shí)例進(jìn)行動(dòng)態(tài)增強(qiáng),使用方法也很簡(jiǎn)單。
var u UserStore = user.New()
// 此處進(jìn)行增強(qiáng)
dpig.Component(&u)
var postCall = func(in, out []reflect.Value) {
log.Println("Get User:", in[0].Interface(),out[0].Interface{})
}
// 修改方法運(yùn)行行為
dpig.Change(dpig.MethodSelector{Object:"UserStore",Method:"GetUser"}, dpig.Extend{Post: []dpig.PostCall{postCall}})
u.GetUser(uid) // 此時(shí)會(huì)執(zhí)行 postCall 函數(shù)
它支持對(duì)方法進(jìn)行三種增強(qiáng):前置、后置、環(huán)繞。
評(píng)論
圖片
表情
