验证是一个跨领域的问题吗?

hhs*_*far 5 validation aop

我的一些同事认为验证是跨领域关注的一个例子,并认为面向方面编程是处理验证问题的好方法.要使用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处理验证以及何时最好使用主代码处理它是一个好主意?

Rob*_*len 0

我认为这是一个横切问题,尽管我从未专门使用 AOP 来实现它。

也就是说,有许多不同的验证场景,我怀疑它们是否都能完全是黑色或白色。

Microsoft 模式与实践 - 交叉关注点