DTO vs hashmap:可维护性与内存效率

时间:2018-02-02 09:28:10

标签: java spring-mvc

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

第1点 - 占用更多内存,少写代码

这极大地提高了可维护性和可读性,因为我的服务方法只有两行代码。但是如果我使用了一个hashmap,那么就会有魔术字符串而且没有编译时检查。

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

将DTO返回给客户端之后,它的类元数据仍然在类加载器中。但是如果我使用了hashmap,那么我就不会有这种开销。如果有很多DTO课程会产生更大的影响。

实际上有什么影响?

1 个答案:

答案 0 :(得分:1)

你不能轻易地用类填充元空间,尤其是手写的类(而不是生成的等)。当然,你可以约束自己,这样你只有很小的可用空间,但在正常情况下,它不太可能。

因此,类对性能或内存使用的影响完全无关紧要。您可能希望避免编写DTO的唯一原因是它需要程序员努力编写和维护它们。这可能会成为问题,但也有办法处理这些问题(例如上述生成的类)。

因此没有(性能或记忆)原因来使用DTO,并且有很多理由不按照您的说法使用ActiveWorkbook。类型安全性和代码可读性是最明显的。