作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好吧,我正在尝试为我的应用程序应用领域驱动设计原则,并使用包含数据字段和业务逻辑的丰富领域模型。我读过很多 DDD 书籍,但似乎它们的领域模型(称为实体)非常简单。当我有一个包含 10-15 个数据字段的域模型时,这会成为一个问题,如下所示:
class Job extends DomainModel{
protected int id;
protected User employer;
protected string position;
protected string industry;
protected string requirements;
protected string responsibilities;
protected string benefits;
protected int vacancy;
protected Money salary;
protected DateTime datePosted;
protected DateTime dateStarting;
protected Interval duration;
protected String status;
protected float rating;
//business logic below
}
最佳答案
您错过的是值对象的概念。值对象是小的、不可变的对象,在各自的领域中具有意义。
我不知道您的域的具体情况,但查看您的 Job
实体,可能有一个值对象 JobDescription
看起来像这样:
class JobDescription {
public JobDescription(string position, string requirements, string responsibilities) {
Position = position;
Requirements = requirements;
Responsibilities = responsibilities;
}
public string Position {get;}
public string Requirements {get;}
public string Responsibilities {get;}
}
IEquatable<T>
在 C# 中。
Entity
而不是 DomainModel
. private
并提供protected
需要维护封装的访问器。 关于domain-driven-design - 领域驱动设计 : How to deal with complex models with a lot of data fields?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33067620/
我是一名优秀的程序员,十分优秀!