Questions tagged «dto»

3
跨微服务共享DTO的方法?
我的情况如下。 我正在设计一个系统,该系统旨在从各种类型的传感器接收数据,然后进行转换并将其持久化,以供以后的各种前端和分析服务使用。 我正在尝试将每个服务设计为尽可能独立,但是遇到了一些麻烦。团队已决定要使用的DTO。面向外部的服务(传感器数据接收者)将以自己独特的方式接收数据,然后将其转换为JSON对象(DTO)并将其发送给Message Broker。消息的使用者将确切地知道如何读取传感器数据消息。 问题是我在几个不同的服务中使用了相同的DTO。必须在多个位置实施更新。显然,我们的设计方式使得此处的DTO中有一些多余或缺失的字段,并且在更新服务之前不会有太大的问题,但这仍然困扰着我,并使我感到自己犯错误。它很容易变成头痛。 我在设计系统时会出错吗?如果没有,那么有什么解决办法,或者至少可以缓解我的担心?

1
DTO代替实体有什么用?
我正在研究RCP应用程序,我是这个应用程序的新手。 Spring bean用于编写业务逻辑来保存/获取实体。 但是,我们不是将实体直接发送给客户端,而是转换为DTO并填充客户端。保存时,我们再次将DTO转换为实体并保存。 这些转换有什么好处?有人可以解释吗?
18 java  spring  entity  map  dto 

3
在微服务之间共享DTO对象
TL; DR-可以在服务之间共享POJO库吗? 通常,如果可能的话,我们希望将服务之间的共享严格限制为无共享。共享数据的服务是否应提供客户端库供客户端使用一直存在争议。客户端库通常对于服务的客户端是可选的,并且可以使用API​​,但是无论他们愿意使用API​​,还是使用客户端库还是使用替代语言并使用库的一般方面,等等。 就我而言-我考虑一种创建数据对象的服务。假设此对象是PET。不是数据库实体,而是严格地隐式表示基础数据的POJO。该POJO是API定义的。假设:宠物-年龄,体重,姓名,所有者,地址,种类等。 服务1 -PetKeeper:无论出于何种原因,它都会生成一个pet,并保留所有数据,并且必须引用此服务来获取pet,或者对pet进行修改,可以说名称更改或地址更改必须通过以下方式完成:此服务的API调用。 服务2 -PetAccessor:此服务收集宠物并进行验证检查 服务3,4-更多中间服务呼叫 服务5-用户界面 这些都是很随意的,但重点很简单。UI或某些面向用户的服务希望以某种方式呈现此“ PET”对象。它必须通过API调用一个服务,该服务调用一个服务,再调用一个服务,依此类推,直到到达收集所需信息并开始中继的服务为止。最后,UI服务具有要显示的PET对象。 这很普遍-但出于我们的绝对思想,我们在每次服务中都复制了PET对象。DRY(请勿重复)原则仅适用于服务内的代码,不适用于所有服务,但重点仍然存在。如果我们添加一个字段怎么办...我们必须在每个字段中修改POJO的5个服务。 -或-我们可以提供一个Pet-Objects-Library,其中包含API中的一些pojo,并且每个服务都可以导入/依赖该库。与服务本身无关,而与常规库无关。我喜欢这个想法,以便每个服务都具有相同类型的对象,并且更新更加容易。但是我担心神物。 优点/缺点是什么-最佳设计是什么?您做了什么在服务之间传递数据,以最大程度地减少重复执行相同的POJO类,同时保持解耦状态?

4
对DTO使用合成和继承
我们有一个ASP.NET Web API,它为我们的单页应用程序提供了REST API。我们使用DTO / POCO通过此API传递数据。 现在的问题是,随着时间的推移,这些DTO越来越大,所以现在我们要重构DTO。 我正在寻找如何设计DTO的“最佳实践”:当前,我们有一些小的DTO,它们仅包含值类型字段,例如: public class UserDto { public int Id { get; set; } public string Name { get; set; } } 其他DTO按组成使用此UserDto,例如: public class TaskDto { public int Id { get; set; } public UserDto AssignedTo { get; set; } } 另外,还有一些扩展的DTO是通过从其他对象继承来定义的,例如: public class …
13 rest  api-design  web-api  dto  poco 

2
清洁架构:什么是视图模型?
鲍勃叔叔在他的《清洁架构》一书中说,主持人应该将收到的数据放入他称为“视图模型”的东西中。 这与Model-View-ViewModel(MVVM)设计模式中的“ ViewModel”是一样的吗,还是简单的数据传输对象(DTO)? 如果不是简单的DTO,它与View有何关系?视图是否通过观察者关系从视图获取更新? 我的猜测是它更像是MVVM中的ViewModel,因为罗伯特·马丁(Robert Martin)在他的书的第23章中说: [演示者]的工作是接受来自应用程序的数据并对其进行格式化以进行演示,以便View可以将其简单地移动到屏幕上。例如,如果应用程序希望在字段中显示日期,它将向Presenter传递Date对象。然后,Presenter会将数据格式化为适当的字符串,并将其放置在称为View模型的简单数据结构中,View可以在其中找到它。 这意味着View以某种方式连接到ViewModel,而不是简单地将其作为函数参数接收(例如DTO就是这种情况)。 我认为这是因为,如果您查看图像,演示者将使用视图模型,而不是视图。演示者同时使用输出边界和输出数据DTO。 如果既不是DTO也不是MVVM中的ViewModel,请详细说明它是什么。

6
将大多数类划分为仅数据字段类和仅方法类(如果可能的话)是好的还是反模式的?
例如,一个类通常具有类成员和方法,例如: public class Cat{ private String name; private int weight; private Image image; public void printInfo(){ System.out.println("Name:"+this.name+",weight:"+this.weight); } public void draw(){ //some draw code which uses this.image } } 但是在阅读了有关“单一职责原则”和“开放封闭原则”之后,我更喜欢仅使用静态方法将类分为DTO和辅助类,例如: public class CatData{ public String name; public int weight; public Image image; } public class CatMethods{ public static void printInfo(Cat …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.