我正在就DTO进行辩论。每当我需要返回域对象的字段的子集或超集时,我创建一个新类,这些字段在代码中使用它。即使只有一个用例。
这极大地提高了可维护性和可读性,因为我的服务方法只有两行代码。但是如果我使用了一个hashmap,那么就会有魔术字符串而且没有编译时检查。
将DTO返回给客户端之后,它的类元数据仍然在类加载器中。但是如果我使用了hashmap,那么我就不会有这种开销。如果有很多DTO课程会产生更大的影响。
实际上有什么影响?
答案 0 :(得分:1)
你不能轻易地用类填充元空间,尤其是手写的类(而不是生成的等)。当然,你可以约束自己,这样你只有很小的可用空间,但在正常情况下,它不太可能。
因此,类对性能或内存使用的影响完全无关紧要。您可能希望避免编写DTO的唯一原因是它需要程序员努力编写和维护它们。这可能会成为问题,但也有办法处理这些问题(例如上述生成的类)。
因此没有(性能或记忆)原因不来使用DTO,并且有很多理由不按照您的说法使用ActiveWorkbook
。类型安全性和代码可读性是最明显的。