Architecture 名称空间组织-AOP验证程序

Architecture 名称空间组织-AOP验证程序,architecture,aop,cross-cutting-concerns,Architecture,Aop,Cross Cutting Concerns,我已经开始在我们的开发框架中使用方面进行参数验证。它工作得很好,我不喜欢在公共方法的前半部分乱丢验证代码 我想知道的是,是否有人建议将参数验证放在名称空间结构的何处?我的部分想法是,因为它是顶级功能,所以它应该位于顶级产品名称空间中——就像.NET Framework中使用系统的方式一样。我只是担心随着核心组件的进一步扩展,它会有更多这样的特性 就目前的情况而言,我将它们分为以下几类: [公司][产品].参数验证器 在本例中,ParameterValidators是包含该功能的类(方面)的名称

我已经开始在我们的开发框架中使用方面进行参数验证。它工作得很好,我不喜欢在公共方法的前半部分乱丢验证代码

我想知道的是,是否有人建议将参数验证放在名称空间结构的何处?我的部分想法是,因为它是顶级功能,所以它应该位于顶级产品名称空间中——就像.NET Framework中使用系统的方式一样。我只是担心随着核心组件的进一步扩展,它会有更多这样的特性

就目前的情况而言,我将它们分为以下几类:

[公司][产品].参数验证器

在本例中,ParameterValidators是包含该功能的类(方面)的名称


除此之外,如果有人对将方面合并到现有代码库中的结构布局有进一步的建议,我将不胜感激。

现在您正在考虑使用技术标准进行分区,即“将所有验证器放在名称空间中,因为它们是验证器”。这没有考虑到验证器存在的原因

我的建议是按功能划分:

  • 通用验证器(如空性和范围检查)位于通用名称空间中

  • 更具体的验证器(如CustomerValidator)进入更具体的名称空间


  • 一般的想法是,您没有一个类可以容纳所有可能的验证器,您有几个类(在不同的名称空间中),每个类声明验证是出于特定的原因。

    现在您正在考虑使用技术标准进行分区,即“将所有验证器放在一个名称空间中,因为它们是验证器”。这没有考虑到验证器存在的原因

    我的建议是按功能划分:

  • 通用验证器(如空性和范围检查)位于通用名称空间中

  • 更具体的验证器(如CustomerValidator)进入更具体的名称空间


  • 一般的想法是,您没有一个类可以容纳所有可能的验证器,您有几个类(在不同的名称空间中),每个类都声明验证是出于特定的原因。

    明白了,我应该更清楚一些。这些是顶级验证器,如“ArgumentInRange”或“ArgumentNotNull”。在这种情况下,我认为通用验证应该有一个自己的名称空间,因为它是一个特性区域。专门化应该与它们的目标对象共存。明白了,我应该更清楚。这些是顶级验证器,如“ArgumentInRange”或“ArgumentNotNull”。在这种情况下,我认为通用验证应该有一个自己的名称空间,因为它是一个特性区域。专门化应该驻留在它们所针对的对象中。