3 回答

TA貢獻1874條經驗 獲得超12個贊
“最佳”是主觀的。
首先,列出所需功能,體系結構等的列表。然后尋找可以滿足您需求的選項,而又不引入不必要的復雜性。例如,有幾種面向接口:您的代碼當前是否面向接口?如果不是這樣,則PostSharp可能是一個更好的選擇(被編織到原始類中)。但是,當然,不能在運行時配置PostSharp。

TA貢獻1946條經驗 獲得超3個贊
在.NET中進行面向方面的編程的最佳方法是使用眾所周知的設計技術。例如,通過應用SOLID原則,您可以實現允許添加跨領域關注點所需的靈活性和模塊化。如果您擁有設計權,那么您甚至可以在沒有任何框架的情況下應用大多數跨領域關注點。認為OOP不適合執行AOP是一個謬論。
這里有一些指針:
不要依賴具體實例,而要依賴抽象。
不要在同一個類中混用跨領域的關注點和業務邏輯。
通過將帶有業務邏輯的類包裝在實現那些關注點的類(裝飾器)中來添加橫切關注點。
在設計中找到常見的工件,并對其進行平均建模,最好使用相同類型的抽象??纯催@個和這個,例如。
當您有了正確的抽象之后,向系統添加新的橫切關注點只是編寫一個新的裝飾器類并將其包裝在正確的實現上。如果抽象是通用的,則可以將單個裝飾器包裝在一大類類中(這正是AOP的目的)。
盡管諸如動態代理和代碼編織之類的技術可以使設計較差的應用程序變得更容易,但對于好的設計,確實沒有其他選擇。遲早您會被燙傷的。但這并不意味著不應使用動態代理生成和代碼編織。但是,如果沒有適當的應用程序設計,那么即使是那些技術也只能提供很少的幫助。
- 3 回答
- 0 關注
- 1182 瀏覽
添加回答
舉報