如何正确连接 类 与依赖关系?
How to properly connect classes with dependencies?
我想创建一个包含多个 class 的项目,但不确定如何将它们正确连接在一起。
假设我们的模型包含以下 classes。体育联赛由多支球队组成,球队由球员和一名经理组成。假设我想将球员连接到特定球队,将球队连接到特定联赛。
我可以添加到联盟 class 球队列表和球队 class — 球员列表和“经理” 属性 像这样:
class League {
private List<Team> teams;
}
class Team {
private List<Player> players;
private Manager manager;
}
使用这种“从上到下”的模型,我们可以轻松构建联赛 table 或获得球队名单。但是我们不能用这个模型做的是让一名球员找到他的经理或队友。而且我们无法找到具体球队在联赛中的位置,因为只有联赛知道这些信息,但 Team 并不知道它被任命到哪个联赛。另一方面,我可以使用“bot-to-top”方法并将 属性“Team”添加到 Player,将“League”添加到 Team,但现在我们无法轻松创建联赛 tables,因为联赛不再由球队组成。
我可以同时建立这两种连接,并将“私人联赛”添加到一个团队,将“列出团队”添加到一个联赛。但这有点像做两次工作,这也不好。假设我想将它们都存储在数据库中,我当然不能将此属性存储到 table,因为它们会自我复制。
那么classes相互依赖的一般原则是什么?也许我应该再做一个支持 classes 来维持它们之间的联系?什么样的原则描述了这类问题?我应该阅读哪些内容才能更好地理解这种依赖关系?
我认为实现双向依赖关系的解决方案最适合这种特定情况。但是会有两个主要缺点:
- 你会使用更多的内存。
- 如果有任何修改,您将必须持续更新依赖项。
这取决于您尝试实施的解决方案。如果您希望执行查询等,那很好,因为它带来的实用程序比它可能导致的问题要好得多。但是,如果您不打算查询那么多信息,那么我宁愿为较低的性能而不是维护和内存使用付费。
我想创建一个包含多个 class 的项目,但不确定如何将它们正确连接在一起。
假设我们的模型包含以下 classes。体育联赛由多支球队组成,球队由球员和一名经理组成。假设我想将球员连接到特定球队,将球队连接到特定联赛。
我可以添加到联盟 class 球队列表和球队 class — 球员列表和“经理” 属性 像这样:
class League {
private List<Team> teams;
}
class Team {
private List<Player> players;
private Manager manager;
}
使用这种“从上到下”的模型,我们可以轻松构建联赛 table 或获得球队名单。但是我们不能用这个模型做的是让一名球员找到他的经理或队友。而且我们无法找到具体球队在联赛中的位置,因为只有联赛知道这些信息,但 Team 并不知道它被任命到哪个联赛。另一方面,我可以使用“bot-to-top”方法并将 属性“Team”添加到 Player,将“League”添加到 Team,但现在我们无法轻松创建联赛 tables,因为联赛不再由球队组成。
我可以同时建立这两种连接,并将“私人联赛”添加到一个团队,将“列出团队”添加到一个联赛。但这有点像做两次工作,这也不好。假设我想将它们都存储在数据库中,我当然不能将此属性存储到 table,因为它们会自我复制。
那么classes相互依赖的一般原则是什么?也许我应该再做一个支持 classes 来维持它们之间的联系?什么样的原则描述了这类问题?我应该阅读哪些内容才能更好地理解这种依赖关系?
我认为实现双向依赖关系的解决方案最适合这种特定情况。但是会有两个主要缺点:
- 你会使用更多的内存。
- 如果有任何修改,您将必须持续更新依赖项。
这取决于您尝试实施的解决方案。如果您希望执行查询等,那很好,因为它带来的实用程序比它可能导致的问题要好得多。但是,如果您不打算查询那么多信息,那么我宁愿为较低的性能而不是维护和内存使用付费。