我们在应用程序中使用hibernate,并喜欢使用DAO模式来实现应用程序的数据层。我已经看到了一些关于使用ValueObjects / DTO从DAO返回数据的建议
public interface EmployeeDAO {
List<EmployeeDTO> getEmployees();
}
返回ValueObjects / DTO而不是将hibernate域对象作为
返回的优点是什么public interface EmployeeDAO {
List<Employee> getEmployees();
}
将数据从hibernate对象复制到value对象并在内存中有两个相同数据的副本是不是太过分了。 ValueObjects真正添加了什么优势?
在业务视图层和视图层之间是否首选ValueObjects是否应在DAO中使用
感谢您的任何建议
希瓦
答案 0 :(得分:1)
使用DTO的主要优点是应用程序的另一层无法修改实际的模型对象,因此会更改您的数据。您这样做是为了保持数据的完整性和安全性。考虑到这一点,如果您对数据的修改方式有何严格要求,那么它是值得的。
如果您没有此类要求,您当然可以返回模型实例。当你不想要时,小心不要改变那些模型。
答案 1 :(得分:1)