问题标签 [value-objects]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
482 浏览

java - BlazeMonster (AS3 VO/DTO Generation) 支持复杂的Java 类?

BlazeMonster能否毫无问题地从复杂的 Java 类生成 AS3 值对象/数据传输对象,例如枚举、泛型、集合/集/列表/映射,而不是包含其他集合/集/列表/映射(很少级别)而没有任何问题?

谢谢。

0 投票
1 回答
825 浏览

nhibernate - 如何使用 Fluent NHibernate 自动映射一组组件?

我所有的实体和值对象都实现了标记接口IEntityIValueObject. 我已将它们设置为像这样对待组件:

不幸的是,这似乎不允许将具有值对象集合的实体自动映射为组件集合。例如:

有没有办法定义一个约定,这样,只要 anIEntity有一个IList实现的类型IValueObject,它就会像我指定的那样被映射:

我不想做的是必须为每个类手动执行这些覆盖,并一次又一次地写出值对象的每个属性。

0 投票
1 回答
359 浏览

entity - 在实体中使用值对象作为标识符

在示例 DDD 项目中查看 Evans 的项目时,我注意到在Cargo实体中,Evans 使用了 tracknumber,它是一个值对象。为什么他没有选择plain string tracknumber,而是选择value object作为身份?这是埃文斯的片段:

0 投票
5 回答
7215 浏览

domain-driven-design - CQRS 中的值对象——在哪里使用

假设我们有受 CQRS 启发的架构,其中包含命令、领域模型、领域事件、读取模型 DTO 等组件。
当然,我们可以在我们的领域模型中使用值对象。我的问题是,它们是否也可以用于:

  1. 命令
  2. 活动
  3. DTO

我还没有看到在上述组件中使用值对象 (VO) 的任何示例。相反,使用原始类型。也许这只是简单的例子。毕竟,我对在 DDD 中使用 VO 的理解是它们充当了整个应用程序的粘合剂。

我的动机:

命令。
假设用户提交了一个包含地址字段的表单。我们有地址值对象来表示这个概念。在客户端构建命令时,无论如何我们都应该验证用户输入,当它格式正确时,我们可以在那里创建地址对象并用它初始化命令。我认为无需将 Address 对象的创建委托给命令处理程序。

领域事件。
领域模型已经根据值对象进行操作,因此通过使用 VO 发布事件而不是将它们转换为原始类型,我们可以避免一些映射代码。我很确定在这种情况下使用 VO 是可以的。

DTO。
如果我们的查询端 DTO 可以包含值对象,则可以提供更多的灵活性。例如,如果我们有 Money 对象,我们可以选择以 EUR 或 USD 显示它,无需更改读取模型。

0 投票
1 回答
1866 浏览

c# - DDD - 在单独的表中使用 Fluent nHibernate 映射值对象

编辑:

嗨,尝试编辑以回答此问题。为了尝试改进这个问题,这里是一个直截了当的浓缩版本:

使用流利的 nhibernate 将值对象映射到单独的表时,下面的代码是要走的路,还是有替代方案?


你好,

出于这个问题的目的,我使用流畅配置的 nhibernate。

我正在稳步学习 DDD,但在对值对象的映射进行了一些澄清之后。似乎有很多关于将值对象映射为组件的信息。但是,我想在某些情况下规范化我的数据库,因此会给值对象一个持久性标识(如果我是正确的,它不会违反 DDD 值对象规则)。

我在 SO 上看到了这个问题,但想了解更多关于如何设置和映射实际值对象的信息。

将值对象映射到表示实体的表时,我很舒服。例如,将地址值对象作为组件映射到客户表中。

我的查询在于映射我想要放置在单独表中的值对象时。使用类映射映射值对象的最佳方法是如下所示?我打算忽略它纯粹是为了休眠持久性的Id。

提前致谢。

0 投票
1 回答
1336 浏览

entity-framework - 实体框架4模型首先使用货币值对象

我想在我的应用程序中使用 Money 值对象。我发现了几个Money 数据类型的例子。但我不知道如何将它们与 EF4 一起使用。我想在数据库中将每个金额存储为 Decimal/CurrencyCode 对(其中 currencycode 是一个字符串 - “USD”、“SEK”等)。我尝试创建一个 complexType 但我无法让它工作。这可能吗?

0 投票
1 回答
491 浏览

c# - POCO 和“值对象”之间的唯一区别是 POCO 的目标是 .Net 吗?

我实际上正在尝试理解 POCO 的确切含义(是的,我已经阅读了维基百科,但仍然无法理解要点:()。

我知道值对象是一个基本上只有属性来保存数据而没有任何行为的对象。

在这种情况下,在我看来,POCO 和“值对象”具有相同的结构,但不同之处在于 POCO 以 .net 框架为目标。

我对么?

谢谢。

0 投票
2 回答
2278 浏览

c# - 货币是否为价值对象

我有 Person 聚合,它是根聚合

和 Currency 类,将在 Person 类中引用。

所以现在如果创建了一个 Person 实体,我们也需要将它与货币相关联。但是在所有创建的货币中,我想知道哪个是默认的主要商店货币。我不想通过 Person 知道它,因为它只包含单一货币。我想从所有创建的人的货币中获得一种货币,即 PrimaryStoreCurrency。

我想在下拉列表中绑定货币,以便用户可以从下拉列表中选择其货币并在我们的系统中注册。

那么,我是否将货币创建为单独的聚合?

0 投票
3 回答
5577 浏览

oop - 域对象和值对象——它们相等吗?

通过查看 Zend 快速入门教程中的域对象示例,以及考虑 DAO/VO 模式的其他示例,它们似乎都非常相似。

我们可以推断说“值对象”与说“域对象”是一样的吗?

如果没有,您能否澄清它们之间的区别?

一个的功能是什么,如果另一个的功能是什么?

我问这个是因为,两者都是由 getter 和 setter 组成的,仅此而已。看来,他们做同样的功能......

更新:

因此,Zend Framework 快速教程文档称之为域对象:

1)严格来说,我们面对的是“贫血的领域对象”吗?

2)是否仅仅因为它包含域逻辑而被称为“域对象” ?

3)如果是这种情况,那么,那些包含 findBookByAuthor() 等方法的映射器;他们也在处理域逻辑,对吗?它们也可以被视为域对象吗?

非常感谢

0 投票
1 回答
184 浏览

actionscript - ActionScript:值对象类的构造函数

可以使用构造函数为值对象类设置属性,还是必须使用点表示法并逐个设置?

我最近读到一篇文章说我应该一个接一个地做,因为值对象应该只包含属性,然后继续说使用构造函数是不行的(最佳实践)。

代码:(
“不行”)

var 员工=新员工(名字,姓氏,年龄);

(“好的”)

var 员工=新员工();
雇员.firstName=名字;
员工姓氏=姓氏;
员工年龄=年龄;

你对此有何看法?

谢谢你。