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