【发布时间】:2021-11-29 02:33:54
【问题描述】:
我正在根据 DDD 开发应用程序。所以我在域层中有我的存储库接口。
我的要求是创建一个 searchByParams 方法。我的问题是:这种方法将 DTO 作为参数是否正确? (因为我在this thread读到,DTO应该在应用层)
这是一个更好地说明我的问题的例子:
我有一个模型对象,比如说 Person :
public class Person {
private String firstName;
private String lastName;
private Date birthDate;
private Date inscriptionDate;
// Getters and setters ...
}
我想按 firstName、lastName、birthDateBefore、birthDateAfter、inscriptionDateBefore、inscriptionDateAfter 获取人员列表。
我想做的是制作某种包含这些字段的 DTO
public class PersonDTO { // I can also name it PersonResearchFilters
private String firstName;
private String lastName;
private Date birthDateBefore;
private Date birthDateAfter;
private Date inscriptionDateBefore;
private Date inscriptionDateAfter;
// Getters and setters ...
}
并将其传递给:List<Person> searchByParams(PersonDTO filters)
但这意味着我的 DTO 将在域层中。
- 可以吗?
- 是否有更好的方法来设计该要求?
- 我是不是误会了什么?
【问题讨论】:
标签: domain-driven-design repository-pattern layer dto ddd-repositories