Transfer Object是否应始终反映整个数据库行条目?

我在DAO模式中有关于传输对象的问题。假设您有一个USER表,此表中有20个字段。在业务逻辑中,我注意到在某些情况下我可能需要字段1到字段3,而在其他情况下我可能需要字段4 - 字段6。所以当我实现userTO类时,我应该只定义字段1 - 6还是我应该定义所有20个字段。另一件事是如果我定义所有20个字段,
UserDAOImpl
类中的SQL将始终需要获取所有20个字段以启动userTO对象,这是一个问题吗? 任何建议都非常感谢。谢谢!     
已邀请:
假设您的userTO类具有高度凝聚力...... 创建对象实例时,始终要确保它们以有效状态创建。也就是说,您可以获取给定对象的实例,并且能够将其传递到程序中任何位置的方法,而不会接收编程错误类型异常(例如NullPointerException)。这将导致您应该始终创建包含所有20个字段的userTO。 但是,我们生活和工作在约束。如果在userTO的每个实例中填充所有20个字段会对系统造成不必要的负面压力,那么您可能想要考虑创建userTOShort,其中包含经常使用的userTO字段的子集。然后,必要时可以填充极少需要的“可选额外”字段。这个“简短”的解决方案感觉有点脏,但我不知道更清洁的解决方案。     

要回复问题请先登录注册