我想更多地了解JHipster选择生成DTO的决定.我有几个问题.
为什么叫DTO?JHipster 3.6.0的发行说明中描述了它可用于在这些对象上执行业务逻辑.如果这实际上是它的意图,那么它不仅是DTO(数据传输对象).它更多,在我看来是一个域对象.好吧,也许这也不是一个理想的术语,因为Domain Object也被解释为DTO,实体等的父术语.从DDD的角度来看,它也可能被称为Aggregate,因为它结合了多个域对象.
基于1.,我认为,目前DTO的脚手架不适合DTO组合多个实体的意图.在这种情况下,它与一个特定实体无关,因此不应在该实体的背景下生成.
我认为目前DTO的脚手架更适合JHipster的VM定义(View Models).如果您有一个具有大量关系的复杂实体,也许还有一些blob或clob数据,那么您不希望将所有数据提交给前端.您需要一个VM来切断UI不需要的依赖对象.这非常适合当前的DTO脚手架,因为关系仅由ID表示.这也是JHipster网站上为DTO所描述的内容.我认为这种描述已被弃用,非常适合虚拟机,但不适用于DTO.以下是JHipster网站的引用:
这些对象在域对象的顶部添加了一个额外的层,并专门针对REST层进行了调整
DTO和VM的概念是否未被完全考虑过,或者我是否缺少一些重要方面?