【发布时间】:2017-05-19 07:59:20
【问题描述】:
我有 2 个表,Patient 和 Registration,关系是一对多的。
在注册模块中,当我想编辑注册时,我调用GetRegistrationByID(int id) 以通过其ID 获取数据,并选择PatientCode 和PatientName 并将其解析为DTO。
在另一个模块中,我重复使用了GetRegistrationByID(int id),但我需要有关患者信息的更多信息,例如性别、出生地点和日期、地址、村庄、地区、省份和电话号码。
对于这种情况,我有 2 个选项,更改 RegistrationDTO 以包含更多患者的信息,但结果是在注册模块中,当我调用 GetRegistrationByID(int id) 时,RegistrationDTO 变得更大。因为我只需要PatientCode和PatientName,现在还有多余的信息是不需要的。
第二个选项是我创建另一个方法GetPatientInfoByRegistrationID(int id),但结果是数据库往返两次。我认为它破坏了 DTO 原则
data transfer object (DTO1[2]) 是一个携带数据的对象 进程之间。使用它的动机是沟通 进程之间通常使用远程接口(例如 Web 服务),其中每次调用都是一项昂贵的操作。 [2]因为 每次通话的大部分费用都与往返有关 客户端和服务器之间的时间,一种减少数量的方法 调用次数是使用一个对象(DTO)来聚合数据 会被几个电话转移,但这是服务的 只需一个电话。[2]
我正在努力学习如何让代码变得更好,那么我应该选择哪一个?请添加解释为什么它更好
【问题讨论】:
标签: design-patterns dto