- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在对具有实体和值对象的域进行建模时,将“基本”值类型与定义好的值对象一起创建是否有意义?
例如,我可以有一个值对象 EmailAddress 或 ProductName。但是仅将 String 作为值对象呢?它是否出于任何充分的理由违反了任何已知的原则?我真正想知道的是,我是否应该/可以将所有可能的属性值定义为值对象,包括 string、bool、int 等。这是错误的还是只是做得很远?不知何故,我觉得我更愿意真正明确地表达任何具有某种值(value)的“事物”,而不是留下任何可以解释的东西。你怎么看?大师们对此有何看法?
我偶然发现的一个 reference :
It's often a good idea to replace common primitives, such as strings, with appropriate value objects. While I can represent a telephone number as a string, turning into a telephone number object makes variables and parameters more explicit (with type checking when the language supports it), a natural focus for validation, and avoiding inapplicable behaviors (such as doing arithmetic on integer id numbers).
最佳答案
DDD 中的值对象是一件很棒的事情,它们是不可变的,因此它们可以安全地传递,它们以一种很好的 OOP 模式(如果您使用 OOP)包含数据及其行为。它们还使隐式显式并提供强类型。
如果您需要上述任何功能,那么您应该为需要它的任何属性创建一个 Value 对象(类、组件……无论您的语言是否存在)。
但是,如果您不需要上述任何一项,那么您不应该这样做。您不会因为某些“大师”这样说而创建新类,例如 every property of an Aggregate should be a Value object
。
最重要的方面是,如果您有一些具有数据和行为的属性,并且您需要为它创建一个类,那么该类应该是一个 Value 对象,特别是,它应该是不可变的(实体除外)。
关于domain-driven-design - 标准值类型作为 DDD 中的 ValueObjects?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49510034/
在Java中,ValueObject的职责是什么?ValueObject导入LOGGER组件是否合理? 最佳答案 由于 VO 应该表示没有任何特定逻辑的纯值,因此它确实不应该打扰任何日志记录组件。 如
我有以下数据结构: [DataServiceEntity] public class User { public string RowKey { get; set; } public
我有以下数据结构: [DataServiceEntity] public class User { public string RowKey { get; set; } public
我有一个父子关系,其中父项有一个 ValueObject,我无法确定如何正确定义该关系。 为子/父关系添加迁移失败并出现错误... 实体类型“地址”需要定义主键。 以下是当前的代码结构。 public
在 2014 年结束时,我认为有一个简单的问题。我想更多地使用“DDD”,目前我正在尝试尝试各种用例以了解有关 DDD 的更多信息。 我当前的用例如下: 我们有一个新的数据库架构,它使用我们公司的经典
我刚刚开始学习领域驱动设计,遇到了一些障碍。 我有一个多对多的关系,我正在尝试以 DDD 方式设计它。假设我有一个 Widget,它是我的聚合。小部件可以有一个选项列表,这些选项是描述小部件的值对象。
我正在尝试结合一些技术。 永远不要创建无效的 ValueObject 似乎是一种很好的做法。因此,只要提供的内容不足以创建有效的 ValueObject,ValueObject 构造函数就会失败。在我
您是否总是创建这两个抽象基类作为 DDD 中任何新项目的基础? 我读过 Entity 应该有两件事。首先,一个身份属性,可能是一个泛型类型。其次,一个 Equals() 方法,用于确定它是否与另一个实
我有一个 IDictionary 的映射属性,这是映射: HasMany(mq => mq.StocksLocation) .KeyColumn("IDProduct")
我有一个项目,其中有一个“习惯”表,该表需要一个播种机来为其提供数据,简单地说,它是一个带有原始数据的播种机,我需要对其进行 cooking ,换句话说,我需要像这样处理... public func
我有一个项目,其中有一个“习惯”表,该表需要一个播种机来为其提供数据,简单地说,它是一个带有原始数据的播种机,我需要对其进行 cooking ,换句话说,我需要像这样处理... public func
我开始玩领域驱动设计,对ValueObject有疑问: 它们可以包含不变量或其他规范吗? 考虑一个不可变的 ValueObject : ValueObject ( prop integer: In
我开始玩领域驱动设计,对ValueObject有疑问: 它们可以包含不变量或其他规范吗? 考虑一个不可变的 ValueObject : ValueObject ( prop integer: In
在我的 Hibernate 应用程序中,我正在使用创建一个 ValueObject 类 @Entity @Table(name="user") public class UserVO{ @Id
在我的 Java 应用程序中创建值对象(Java Bean),其中有一个字段 @Entity @Table(name="EC_TIMETABLE") public class Timetabl
在对具有实体和值对象的域进行建模时,将“基本”值类型与定义好的值对象一起创建是否有意义? 例如,我可以有一个值对象 EmailAddress 或 ProductName。但是仅将 String 作为值
尝试使用 ASP.NET 样板和 Entity Framework 实现 DDD 员工对象 public class Employee : Entity { public virtual str
在领域驱动设计中,我们介绍了 ValueObject 的概念,其中对象不携带身份。 微软有provided an implementation of their ValueObject在他们的微服务系
Javers 可以比较两个集合来识别旧集合中每个对应对象在新集合中的对象中发生的变化吗? 实现是否依赖值对象类的equals方法?我为我的值对象实现了 equals 方法,但它似乎仍然将它们视为不同的
考虑这些简单的类。它们属于具有领域驱动设计 (DDD) 原则的简单应用程序,因此每个 Entity 和 ValueObject 通过构造函数接收其属性值,同时隐藏默认的无参数构造函数。属性也将是只读的
我是一名优秀的程序员,十分优秀!