我正在就DTO进行辩论。每当我需要返回域对象字段的子集或超集时,我都会创建一个新类,这些字段在代码中使用它。即使只有一个用例。
第一点-吃更多的内存,写更少的代码
由于我的服务方法只有两行代码,因此大大提高了可维护性和可读性。但是,如果我使用哈希图,那么将会有魔术字符串并且没有编译时检查。
第2点-减少内存消耗,编写更多代码
在将DTO返回给客户端之后,它的类元数据仍在类加载器中。但是,如果我使用哈希图,那么我就不会有这种开销。如果有许多DTO类,则影响更大。
务实的影响是什么?
最佳答案
您不能轻易用类填充元空间,尤其是手写类(与生成类相反)。当然,您可以约束自己,以便只有最小的可用空间,但是在正常情况下,这种可能性很小。
因此,类对性能或内存使用的影响是完全不相关的。您可能要避免编写DTO的唯一原因是,这需要程序员努力编写和维护它们。这可能会带来问题,但是也有一些方法可以解决这些问题(例如上述生成的类)。
因此,没有(性能或内存)原因不使用DTO,并且有很多理由不使用您所说的Maps
。类型安全性和代码可读性是最明显的。
关于java - DTO与哈希图:可维护性与内存效率,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48579554/