HashMap而不是DTO?

时间:2015-04-06 11:58:25

标签: java design-patterns

使用HashMap而不是DTO有什么问题?我不是调用bean的setter和getter,而是从hashmap中获取并获取值,并在服务之间传递它(hashmap实现Serializable接口)。 我知道这是一个不好的做法。但是为什么以及在哪种情况下我们会面临这个问题呢? 感谢您的帮助。

1 个答案:

答案 0 :(得分:7)

  • 无编译时间检查。当您从返回的HashMap中提取某些内容时,您永远无法获得编译时验证,即您将其投射到的内容有效。

  • 难以重构。在许多IDE(例如IntelliJ)中,有很多设施可以重构类的方法名称,变量等。使用字典模式时,这会变得更加困难。

  • 返回值更加模糊。假设在项目的第1阶段,您返回一个用户对象并仅使用“getUsername()”方法。然后在第2阶段,您突然需要访问密码属性。如果您有一个用户对象,您可以确切地知道该值是否可访问以及如何通过查看该类来获取该值。使用HashMap并不一定如此。如果您无权访问生成HashMap的类的源(在本例中为EJB),您将永远不会知道其他可用的数据属性。

希望它有用......