2 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
日志記錄不是服務(wù),而是一個(gè)跨領(lǐng)域的問題。因此,最好用Decorator實(shí)現(xiàn)。但是,添加大量Decorators只是為了啟用各種不同服務(wù)的日志記錄會(huì)違反DRY,在這種情況下,您可以將這些Decorators進(jìn)一步發(fā)展為單個(gè)Interceptor。
盡管可以使用IL編織實(shí)現(xiàn)AOP,但更好的選擇是使用支持動(dòng)態(tài)攔截的DI容器,因?yàn)樗且环N輕量級(jí)的解決方案。
這使您能夠?qū)⒕唧w服務(wù)與日志完全脫鉤。那么,在這種情況下,我會(huì)說沒有理由包裝任何特定的日志記錄框架,因?yàn)槿绻敫娜罩居涗浛蚣埽瑒t只需更改單個(gè)Interceptor。
這是一個(gè)討論用于裝飾的裝飾器和攔截器的示例(非常類似于記錄)。

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊
動(dòng)態(tài)攔截也是 AOP :)但是,我將您的問題解釋為與IL編織有關(guān)的AOP有關(guān)。在那種情況下,對(duì)于一個(gè)未開發(fā)的項(xiàng)目,我絕對(duì)看不到它有任何好處,但是在遺留代碼上,它可能是可行的,因?yàn)樗试S您將方面應(yīng)用于靜態(tài),內(nèi)部和/或私有類型和成員,而動(dòng)態(tài)攔截則要求您針對(duì)接口(或基類)進(jìn)行編程。
- 2 回答
- 0 關(guān)注
- 622 瀏覽
添加回答
舉報(bào)