加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

接口 – 依赖注入 – 与数据传输对象(DTO)一起使用?

发布时间:2020-12-14 00:50:55 所属栏目:百科 来源:网络整理
导读:考虑下面的代码(已经简化).我有一个服务类,它返回一个特定DTO对象的列表,每个对象都实现自己的特定接口.在实际代码中,当我使用遗留代码时,通过迭代数据集来填充这些代码. 问题: 我们如何创建/使用DTO而不对其进行新增或使用Service Locator反模式?在Compos
考虑下面的代码(已经简化).我有一个服务类,它返回一个特定DTO对象的列表,每个对象都实现自己的特定接口.在实际代码中,当我使用遗留代码时,通过迭代数据集来填充这些代码.

问题:

>我们如何创建/使用DTO而不对其进行新增或使用Service Locator反模式?在Composition Root中组合一个空的DTO对象并通过构造函数将它注入Service类没有多大意义,因为我实际上在填充列表时使用DTO作为各种临时变量.
>在代码中,您可以看到我新建DTO的示例.但这感觉并不多
比我首先让DTO不实现接口更好.那么他们不应该实现接口,因此,不使用DI与DTO?

public class Services : IServices
{    
    public IList<IDTO> GetDTOs()
    {    
        ...
        List<IDTO> dtos = new List<IDTO>();
        foreach (c in d) 
        {
            DTO dto = new DTO();
            dto.x = c.x;
            dto.y = c.y;
            dto.z = c.z;
            dtos.Add(dto);
        }
        return dtos;
    }    
}
使用任何DI进行DTO对我来说没有多大意义.我可能会使用工厂模式为我的模型对象获取DTO.

DTO不需要由容器管理的生命周期;我会新建它们.不要过度工程.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读