代码之家  ›  专栏  ›  技术社区  ›  sduplooy

对象内部或外部的域实体验证代码?

  •  0
  • sduplooy  · 技术社区  · 15 年前

    您将在哪里放置域实体的验证代码?在类内部的方法(如validate())中,还是在使用对象的上下文外部?还是两者兼而有之?

    2 回复  |  直到 15 年前
        1
  •  0
  •   Kannan Ekanath    15 年前

    如果验证只需要查询实体内的对象,那么将验证放在实体内。对于个人实体

    • 检查age>0或name是否不为空应在validate()方法中的实体内
    • 检查某个课程是否包含在某个策略中(从所有策略的列表中),这将涉及查询/读取可能与实体本身无关的其他课程/策略对象,这些对象应由实体外部的上下文/服务/验证程序完成。
        2
  •  0
  •   AshtonKJ    15 年前

    在最近的一个项目中,我们混合了两者。对于像字段长度或正则表达式这样的简单数据约束,我们将对实体进行验证。对于更复杂的验证(如与系统中其他实体的关系),我们将使用一个单独的服务来验证实体,我们发现这非常有效。