2011-11-01 72 views
1

假設應用程序的業務規則的關鍵部分取決於給定的行爲,但是明確地編寫此行爲會混亂您的代碼,您是否依賴使用PostSharp封裝它(或使用任何這方面的其他方面框架)?這是一種「安全」和「明智」的選擇,還是明確地編碼行爲總是更好?無論它如何混淆代碼?那麼這種解決方案的可維護性呢?PostSharp和關鍵代碼部分

回答

2

不推薦在方面放置業務規則或業務邏輯。它打敗了AOP的目的。業務規則/邏輯不是交叉關注的問題。如果您將業務邏輯的一部分視爲混亂,那麼您應該使用常見的OOP實踐來抽象它或將其提取到它自己的方法中。

當然,您可以將其轉變爲一個方面,但目標是什麼?爲了減少混亂?這是我不能接受的。使用方面消除與業務邏輯無關的混亂,以便您的業務邏輯清晰。如果你的業務邏輯混亂,那麼你需要重構。

PostSharp vs其他AOP框架:如果您最終將「關鍵代碼」放入某個方面,那麼PostSharp將成爲獲得最佳性能的最佳框架。像IoC這樣的運行時框架包含動態攔截不會像靜態編譯的代碼那樣執行。另外,PostSharp有很多優化,它基於你編寫的代碼執行,沒有其他框架可以匹配。