不变量和验证规则有什么区别?

2024-02-12

我经常看到这个词不变量在DDD中。Here https://msdn.microsoft.com/en-us/magazine/hh205755.aspx迪诺·埃斯波西托谈到了这一点。如果我查看 .NET 库,我会看到验证属性 https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.validationattribute(v=vs.110).aspx班级。是不变量 and 验证规则相同?例如,我可以说仅当订单总额超过 250 美元时才可享受 50% 折扣是一个不变量?

或者它们是否有所不同,不变式是为了保护对象免于无效,而验证是为了检查对象的有效性,即使它已经改变了它的状态(它可以处于有效或无效状态)?在上面的示例中,如果我使用不变量,我会在更新折扣之前检查不变量,并且在验证的情况下,我应用 50% 折扣,然后检查有效性(对象已经处于无效状态)。


当然,验证是批准给定对象状态的过程,而不变性强制执行甚至发生在达到该状态之前。

一个推论是,不变的执行最好由正在变异(或创建)的事物本身来执行,就像自我保护反射一样,而验证通常由第三方完成。

The 始终有效 http://codebetter.com/gregyoung/2009/05/22/always-valid/该学派主张使用不变量而不是验证。我认为它与 DDD 和聚合完美契合。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

不变量和验证规则有什么区别? 的相关文章

  • 除了“真实”对象之外,DDD 存储库还可以使用摘要对象吗?

    假设我正在创建一个存储库来存储数字电子书 如下面的界面所示 该存储库将存储书籍的实际文本以及标识书籍的元数据 标题 作者 出版商 ISBN 等 public interface IBookRepository void AddBook Bo
  • 使用数据库数据模型生成 SQLAlchemy 模型、架构和 JSON 响应

    将 Flask 和 SQLAlchemy 用于 Python Web 应用程序 我的目标是创建一个系统 在其中我可以 从现有 PostgreSQL 数据库导入数据模型 并将它们映射到相应 SQLAlchemy 模型中的字段 使用这些 SQL
  • JS jQuery - 检查值是否在数组中

    我更喜欢 PHP 而不是 JS 我认为我的问题更多是语法问题 我有一个小的 jQuery 来 验证 并检查输入值 它适用于单个单词 但我需要数组 我正在使用inArray jQuery 的 var ar value1 value2 valu
  • 验证 Laravel 中的选择表单

    我的联系表上有这个 html div class form group div
  • EditText.setError 不显示错误文本,仅显示图标

    我的应用程序中有一个简单的验证 这里我使用了四个EdtiText 我显示错误时EditTex不会失去焦点 但问题在于失去焦点EditText只显示图标 没有错误消息 我尝试过使用requestFocus 方法 现在可以看到错误 但问题是 现
  • AJAX Rails 验证

    我的表单和验证可以很好地处理常规的 http 请求 我希望它使用 AJAX 我知道我可以在客户端进行验证 但这似乎是多余的 因为我已经在模型中定义了验证 当用户填写表单时 我想就他们的条目向他们提供反馈 在 AJAX 表单中使用 Rails
  • 身份验证和用户任务

    我正在考虑开发一个具有明确定义域的系统 主要基于网络 域的一部分包括像这样的实体Diary Booking Customer etc 不过我创建了另一个名为User其目的仅用于身份验证和授权 污染Customer具有特定于身份验证的数据的实
  • 寻找领域事件的例子

    有谁知道在哪里可以找到域事件实现的示例代码 如乌迪 达汉 http www udidahan com in 领域事件 救赎 http www udidahan com 2009 06 14 domain events salvation 在
  • 使用正则表达式验证器上传文件不适用于仅 Firefox IE

    我有一个带有 RegularExpressionValidator 的 FileUpload 和以下验证表达式 a zA Z 2 w w w gif jpg JPG JPEG GIF jpeg png bmp 3dm 3dmf ai drw
  • 如何对我的自定义验证属性进行单元测试

    我有一个自定义的 asp net mvc 类验证属性 我的问题是如何对其进行单元测试 测试类是否具有该属性是一回事 但这实际上并不能测试其中的逻辑 这就是我想测试的 Serializable EligabilityStudentDebtsA
  • 构建动态 ConstraintViolation 错误消息

    我写了一个由自定义实现的验证注释ConstraintValidator 我也想生成非常具体的ConstraintViolation使用消息插值期间验证过程中计算的值的对象 public class CustomValidator imple
  • 验证美国的电话号码是否存在

    我想用 C 验证美国的给定电话号码 是否有任何API或其他东西可以帮助程序员验证电话号码存在 我不仅想验证它们是否与美国电话号码的格式匹配 还想验证它们的存在 提前致谢 您可以使用正则表达式验证电话号码格式 例如 但为了验证该电话号码是否确
  • 将自定义参数传递给 Symfony2 中的自定义 ValidationConstraint

    我正在 Symfony2 中创建一个表单 表格只包含一个book字段允许用户在列表中进行选择Books实体 我需要检查是否选择了Book属于Author我的控制器里有 public class MyFormType extends Abst
  • 领域驱动设计 (Linq to SQL) - 如何删除聚合的某些部分?

    我似乎对整个 DDD LinqToSql 业务感到有点困惑 我正在使用 POCOS 和 linq to sql 构建一个系统 并且我有聚合根的存储库 因此 例如 如果您有 Order gt OrderLine 类 那么您就有了 Order
  • 验证假名输入

    我正在开发一个允许用户输入日语字符的应用程序 我试图想出一种方法来确定用户的输入是否是日语假名 平假名 片假名或汉字 应用程序中的某些字段不适合输入拉丁文文本 我需要一种方法将某些字段限制为仅限汉字或仅限片假名等 该项目使用UTF 8编码
  • 在下面的模型中,地址不应该是值对象吗?

    From 值对象如何存储在数据库中 https stackoverflow com questions 679005 how are value objects stored in the database 假设公司和个人都有相同的邮件地址
  • 我希望 jQuery 验证器向表单元素的父级添加一个类

    我该如何使用jQuery 验证器 http docs jquery com Plugins Validation添加 删除类名 例如validate 在表单元素的父元素上 li 这样我就可以通过仅设置一个类名来设置与该元素相关的所有内容的样
  • 如何使用正则表达式在 Java 中检查确切的电话号码

    你好 我是正则表达式的新手 我不知道我在做什么 这就是我寻求帮助的原因 我有以下电话号码 359878123456 我需要检查该电话号码是否符合条件 359 是准确的扩展名 第二个 2 个数字是操作员号码和以下 3 个数字之一 87 88
  • 仅当表单已提交时才触发 jQuery 表单验证?

    不引人注目的验证基于这样的想法 don t进行表单验证 直到用户提交表单 一旦发生这种情况 如果表单上的某些内容无效 那么一旦用户更改了每个字段 就会立即验证它 我想做的是 不显眼地 触发表单元素的验证 也就是说 only如果用户已尝试提交
  • 显示异常时的自定义错误消息:从客户端检测到潜在危险的 Request.Form 值

    我在我的 Web 应用程序中使用 ASP NET 的登录控件 当发生此异常时 我想在标签上显示一种有趣的错误类型System Web HttpRequestValidationException A potentially dangerou

随机推荐

  • 通过 WebJobs 重新排队或删除 Azure 存储队列中的消息

    我希望有人能够澄清有关 Azure 存储队列及其与 WebJobs 交互的一些事情 要执行重复的后台任务 即添加到队列一次 然后以设定的时间间隔重复 是否有一种方法可以更新 QueueTrigger 函数中传递的相同消息 以便可以扩展其租约
  • 如何使用OpenCV的重映射功能?

    这是 remap 最简单的测试用例 import cv2 import numpy as np inimg np arange 2 2 reshape 2 2 astype np float32 inmap np array 0 0 0 1
  • 制作独特数组的最快方法是什么?

    我有以下情况 我有一大堆随机字符串 应尽快使该数组变得唯一 现在通过一些基准测试我发现 ruby 的 uniq 相当慢 require digest require benchmark make a nice random array of
  • wordpress 上的 $(window).height() 数量太大

    我正在创建工具提示的动态位置 我先在 jsfiddle 上测试了代码 然后再将我的代码放入我的网站 在本地主机上使用 wordpress 构建 在 jsfiddle 上我的脚本可以工作 但是当我将代码放入我的网站时 它不起作用 在 Chro
  • 将数据传递到 Laravel 视图

    刚刚进入 MVC 框架 我尝试使用刀片模板引擎将数据传递到我的视图 这是我的路线文件 Route get PagesController index 我的页面控制器
  • 绘图上可缩放、可拖动的框可以选择数据

    这是设置 我有一个数据图形图 我试图找出是否可以尝试在图形上放置一个可以移动和更改宽度的框 并返回一些值 例如曲线下的百分比和面积 它看起来像这样 关于从哪里开始有什么建议吗 我的感觉是 使用更多 GUI 界面而不是标准绘图可能是可行的 我
  • 在自定义类上创建字典样式的集合初始值设定项[重复]

    这个问题在这里已经有答案了 可能的重复 自定义集合初始化器 https stackoverflow com questions 2495791 custom collection initializers 我有一个简单的 Pair 类 pu
  • 如何增加 Tensorflow 中的变量?

    当尝试在 Tensorflow 中使用主管时 我意识到 您的训练操作负责增加全局步值 参考 https github com tensorflow tensorflow blob master tensorflow g3doc how to
  • 如何在 MVC 4 中将 List 传递给控制器

    我有 2 个模型 问题和答案 如下所示 我想将列表模型发送到视图 并且在提交表单时 我将列表模型提交到控制器 但在 Action UpdateQuestion 中只能获取问题列表 但只能获取问题列表答案是否定的 您能解释一下并告诉我如何在提
  • 在Python中迭代图像所有像素的最快方法

    我已经将图像读取为数组 import numpy as np from scipy import misc face1 misc imread face1 jpg 面 1 的尺寸为 288 352 3 我需要迭代每个像素并填充y在训练集中我
  • 如何在运算符处分割字符串

    我正在用 Java 创建一个计算器 如果我让用户输入一个字符串 例如 7 4 18 3 2 到目前为止 我必须让用户在每个数字或运算符之间输入一个空格 我如何从给定的字符串创建一个数组 其中字符串按数字或运算符拆分 因此在这种情况下数组将是
  • 错误:警告:从空值创建默认对象

    我第一次发帖 我希望有人能帮助我解决周三出现在我的网站上的这个错误 我不知道如何纠正它 因为我从未接触过 php 文件 如果我能得到一些帮助 我将非常感激 出现错误的网站位于页面顶部 http www inkedkoidesigns ca
  • 如何安装 QtWebKit 插件

    我正在运行 Qt 4 5 商业快照 并希望在我的应用程序中使用我下载的插件 它是一个 so 文件 QWebView 我需要放置此文件的特定位置吗 我可以使用QWebPluginFactory 我假设这里的插件是 NPAPI 插件 例如 Fl
  • 无法创建 SSL/TLS 安全通道 - 问题可能出在代理服务器上吗?

    我有一个 C 应用程序 它调用使用证书进行身份验证的 Web 服务方法 该代码有效 因为当它安装在服务器 A 没有代理 上时 它会进行身份验证 当我在客户端站点的服务器 B 上安装代码时 它安装在代理后面 我确实尝试了几乎所有方法 但我不断
  • 为什么 List 不实现 IOrderedEnumerable

    我想使用有序枚举 并使用接口作为返回类型而不是具体类型 我需要返回一组有序的对象 但是 当使用IList
  • 如果键不存在,C# Dictionary 查找会发生什么情况?

    我尝试检查 null 但编译器警告这种情况永远不会发生 我应该寻找什么 假设您想获取键的值does存在 使用Dictionary
  • 如何使用 beautifulsoup 检查字符串是否存在

    您好 我正在尝试编写一个程序来抓取 URL 如果抓取数据包含特定字符串 请执行某些操作 我如何使用 beautiful soup 来实现此目的 import requests from bs4 import BeautifulSoup da
  • $(...).function 不是函数 jQuery

    我知道这个问题已经在之前的帖子中发布过 但没有任何帮助 这让我发疯 更重要的是我确信答案非常简单 但我对 javascript 真的很陌生 我正在尝试从那里集成这个 raptor konami code http zurb com play
  • WooCommerce 以编程方式创建订单并重定向到付款

    对于 WooCommerce 我正在寻找一种以编程方式创建订单的解决方案 我的网站只有 1 个带有一些字段的主页 来订购 使用复选框添加产品后 我想创建订单并重定向到付款方式 有了这个答案 创建订单就差不多完成了 但是我如何开始付款呢 Wo
  • 不变量和验证规则有什么区别?

    我经常看到这个词不变量在DDD中 Here https msdn microsoft com en us magazine hh205755 aspx迪诺 埃斯波西托谈到了这一点 如果我查看 NET 库 我会看到验证属性 https msd