我的一些同事认为验证是跨领域关注的一个例子,并认为面向方面编程是处理验证问题的好方法.要使用PostSharp表示法,他们认为这样的事情是个好主意:
[InRange(20.0, 80.0)]
public double Weight
{
get { return this.weight; }
set { this.weight = value; }
}
Run Code Online (Sandbox Code Playgroud)
我的观点是验证是算法的固有部分,没有必要使用AOP将其推送到幕后.然而,这很像一种直觉,我没有一个非常明确的理由.
您认为何时使用AOP处理验证以及何时最好使用主代码处理它是一个好主意?