我在设计级别有一个问题。在我们的应用程序中使用DAO或DTO之间存在争论。
我遍历了现有文章,并且知道仅在表示复杂对象时才使用DTO。但是,仅使用表上的联接操作即可生成视图。
数据库:
表格:
game
game_details (has a primary key of Game) - There will be at max 4 rows for a given game_id
我的视图包含表game和game_details中的所有列。这4行中的每行将显示在不同的选项卡中。 对于视图中的每个更改,都有3/4的可能性更新两个表。
现在最好的方法是什么。 1.将整个视图包装为DTO。 2.或使用GameDetails Model对象列表定义我的模式Game。
如果我们采用第二种方法,那么持久化数据的方式是否会发生任何变化。
答案 0 :(得分:0)
数据访问对象就是这样做的。他们如何做取决于您使用的技术。我喜欢Hibernate进行CRUD操作。
我使用术语“数据传输对象”来指代描述我的API的对象。因此,我将定义与在RESTful服务中传递的JSON匹配的DTO。
我使用DTO的和实体对象将API与数据库分离。它涉及更多处理,但是我发现额外的努力值得。
如何定义DTO取决于您,并且取决于您如何描述在服务API中传递的数据。扁平结构更易于使用JDBC填充;但是,它通常包含大量冗余数据,并且需要更多逻辑来处理。一种结构化的方法,其中标头包含详细信息列表, 可能需要更多的工作来填充,但是可以避免冗余并且更易于使用。