Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 传输对象是否应始终反映整个数据库行条目?_Design Patterns_Language Agnostic_Dao_Data Transfer Objects - Fatal编程技术网

Design patterns 传输对象是否应始终反映整个数据库行条目?

Design patterns 传输对象是否应始终反映整个数据库行条目?,design-patterns,language-agnostic,dao,data-transfer-objects,Design Patterns,Language Agnostic,Dao,Data Transfer Objects,我有一个关于DAO模式中传输对象的问题。假设您有一个用户表,该表中有20个字段。在业务逻辑中,我注意到在某些场景中可能需要字段1到字段3,在其他场景中可能需要字段4到字段6。因此,当我实现userTO类时,我应该只定义字段1-6还是定义所有20个字段。另一件事是,如果我定义了所有20个字段,那么UserDAOImpl类中的SQL将始终需要获取所有20个字段,以便启动userTO对象,这会是一个问题吗 如有任何建议,我们将不胜感激。谢谢 假设您的userTO类是高度内聚的 创建对象的实例时,始终希

我有一个关于DAO模式中传输对象的问题。假设您有一个用户表,该表中有20个字段。在业务逻辑中,我注意到在某些场景中可能需要字段1到字段3,在其他场景中可能需要字段4到字段6。因此,当我实现userTO类时,我应该只定义字段1-6还是定义所有20个字段。另一件事是,如果我定义了所有20个字段,那么
UserDAOImpl
类中的SQL将始终需要获取所有20个字段,以便启动userTO对象,这会是一个问题吗


如有任何建议,我们将不胜感激。谢谢

假设您的userTO类是高度内聚的

创建对象的实例时,始终希望确保在有效状态下创建它们。也就是说,您可以获取给定对象的实例,并能够将其传递到程序中任何位置的方法中,而不接收编程错误类型异常(例如NullPointerException)。这将得出结论,您应该始终使用所有20个字段创建userTO

然而,我们的生活和工作都受到限制。如果在userTO的每个实例中填充所有20个字段会对系统造成不必要的不利压力,那么您可能需要考虑创建一个UserToSort,其中包含经常使用的userTO字段的子集。然后,在必要时可以填充很少需要的“可选额外”字段。这种“短”的解决方案感觉有点脏,但我不知道有更干净的解决方案