我正在就DTO进行辩论。每当我需要返回域对象字段的子集或超集时,我都会创建一个新类,这些字段在代码中使用它。即使只有一个用例。

第一点-吃更多的内存,写更少的代码

由于我的服务方法只有两行代码,因此大大提高了可维护性和可读性。但是,如果我使用哈希图,那么将会有魔术字符串并且没有编译时检查。

第2点-减少内存消耗,编写更多代码

在将DTO返回给客户端之后,它的类元数据仍在类加载器中。但是,如果我使用哈希图,那么我就不会有这种开销。如果有许多DTO类,则影响更大。

务实的影响是什么?

最佳答案

您不能轻易用类填充元空间,尤其是手写类(与生成类相反)。当然,您可以约束自己,以便只有最小的可用空间,但是在正常情况下,这种可能性很小。

因此,类对性能或内存使用的影响是完全不相关的。您可能要避免编写DTO的唯一原因是,这需要程序员努力编写和维护它们。这可能会带来问题,但是也有一些方法可以解决这些问题(例如上述生成的类)。

因此,没有(性能或内存)原因不使用DTO,并且有很多理由不使用您所说的Maps。类型安全性和代码可读性是最明显的。

关于java - DTO与哈希图:可维护性与内存效率,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48579554/

10-11 19:13
查看更多