假设应用程序业务规则的关键部分依赖于给定的行为,但是明确编码此行为会使您的代码混乱,您是否会依赖使用 PostSharp(或与此相关的任何其他方面框架)将其封装在一个方面?这是一个“安全”和“明智”的选择,还是无论代码如何混乱,明确编码行为总是更好?这种解决方案的可维护性如何?
问问题
48 次
1 回答
2
不建议将业务规则或业务逻辑放在切面中。它违背了 AOP 的目的。业务规则/逻辑不是横切关注点。如果您认为您的业务逻辑的一部分是混乱的,那么您应该使用常见的 OOP 实践来抽象它或将其提取到它自己的方法中。
当然,您可以将其移动到一个方面,但目标是什么?减少混乱?这是我不能接受的。使用方面来消除与业务逻辑无关的混乱,以便您的业务逻辑清晰。如果您的业务逻辑混乱,那么您需要重构。
PostSharp 与其他 AOP 框架:如果您最终将“关键代码”放入一个方面,那么 PostSharp 将是获得最佳性能的最佳框架。像 IoC 这样的运行时框架包含执行动态拦截的性能不如静态编译的代码。此外,PostSharp 有很多优化,它基于您编写的代码执行,这是其他框架无法比拟的。
于 2011-11-01T14:11:07.030 回答