gpt4 book ai didi

java - Java/Android 中的用户挑战关系设计

转载 作者:行者123 更新时间:2023-12-01 13:46:51 25 4
gpt4 key购买 nike

我刚刚开始应用程序开发,目前正在编写一个 Android 应用程序,该应用程序已注册用户和“挑战”列表,他们可以选择这些挑战,然后将其标记为已完成/失败。计划是最终将所有用户/挑战/等数据存储在数据库中,尽管我还没有实现这一点。

我遇到的问题是这样的 - 在我当前的设计中,每个用户都列出了包含他们当前挑战和已完成挑战的变量,例如。两个 ArrayList 字段。用户当前从不同挑战对象的 ListView 中选择挑战,然后将其添加到用户的 CurrentChallenges 列表中。

我没有考虑到如何构建它,以便当用户接受挑战时,他们有自己独特的挑战副本,可以独立标记为已完成等,而此时每个选择的用户比如说,挑战 1,只是添加具有相同 ID 等的相同挑战,作为选择挑战 1 的每个其他用户。

我想我可以让每个不同的挑战成为其自己的挑战子类,并为选择该挑战类型的每个用户分配该类的不同实例,但这似乎是一种非常困惑/低效的方法不同的类基本上是相同的。

有人对这个案例有什么好的想法或设计模式吗?最好是能够与稍后将这些挑战存储在数据库中并可能使用 ORM 兼容的解决方案。

非常感谢您的建议,E

最佳答案

我会将每个用户不同的挑战的各个方面转移到新的 Attempt 中。类(class)。所以Challenge可能有 name 的变量, description等等和Attempt会有inProgress , completed显然,这些只是示例,请将它们替换为您实际存储的任何数据。

现在在您的User中类里面,您可以使用 Map 记录挑战。使其成为Map<Challenge, Attempt>每个 User将能够存储 Attempt对于每个 Challenge记录他们的进步。 Challenge实例在用户之间共享,但有一个 Attempt User 的每个组合的实例和Challenge .

<小时/>

当您稍后实现数据库时,Challenge , UserAttempt每个都会翻译成一张 table 。 Attempt其他两个表都有外键。不幸的是,我没有太多使用 ORM,所以我不确定它们是否可以与 Map 一起使用。正确。

关于java - Java/Android 中的用户挑战关系设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20303768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com