【发布时间】:2023-03-14 17:15:01
【问题描述】:
我是设计模式的新手,想知道将一个 DTO 转换为另一个 DTO 的最佳方法是什么。
为了最大限度地提高性能我使用存储过程来连接多个表(例如entries、definitions、examples、vocabularies)并返回完整集超过 40 列的数据 - 重新创建复合 DTO 需要这些数据。
所以我最终拥有一个单独的 DTO (GetEntryDbDto),其中包含 40 多个字段,并且我手动将来自 DB 的响应映射到它。
第二个 DTO 是结构化的,因此它具有嵌套集合。
现在我将把一个 DTO 转换成另一个 DTO 的代码保存在 工厂中。
public class EntryFactory
{
public static EntryDto Get(DbDataReader reader)
{
List<GetEntryDbDto> dbDtos = GetEntryDbDtoFactory.Get(reader);
...
return entryDto;
}
...
对象结构如下:
EntryDto 包含 Definitions - DefinitionDto[] 的集合。
每个DefinitionDto 都有Examples 集合-ExampleDto[]。
我没有为上述两个类引入任何接口,因为它们不共享公共属性。
有没有更好的方法使用不同的设计模式来重构它?
【问题讨论】:
-
在我最近的一篇文章中,我详细介绍了该帖子中的
DTO structurestackoverflow.com/q/51255594/5374333 - 我使用方法 2
标签: c# design-patterns architecture refactoring software-design