试图找出设计分层结构的最佳方法。一个例子就是体育联盟结构。分层设计所需的建议
冰球联赛有两个会议A和B.
会议A有分歧东,西
会议B有师北,南,东,西。
团队可以按部门或会议显示。
实际上只有一个联盟,它可能有多个会议,每个会议都有多个部门。每个人的大小可能不同。主要关心的是当我需要查询时。例如,布局结构的好方法是什么,这样我就可以取得部门中的所有团队,会议中的所有团队或其他团队部门或会议中的所有团队,而不会过于繁琐。
任何帮助,非常感谢。 :)
试图找出设计分层结构的最佳方法。一个例子就是体育联盟结构。分层设计所需的建议
冰球联赛有两个会议A和B.
会议A有分歧东,西
会议B有师北,南,东,西。
团队可以按部门或会议显示。
实际上只有一个联盟,它可能有多个会议,每个会议都有多个部门。每个人的大小可能不同。主要关心的是当我需要查询时。例如,布局结构的好方法是什么,这样我就可以取得部门中的所有团队,会议中的所有团队或其他团队部门或会议中的所有团队,而不会过于繁琐。
任何帮助,非常感谢。 :)
真的有两种方法可以采取。其一是“纯粹”的设计,你实际上有一个层次:
League hasA collection of Conferences
Conference hasA collection of Divisions
Division has a collection of Teams
你的联赛则需要通过法司,会议或全部给球队的集合。根据你需要做的事情,也许你只有联盟提供迭代器而不是集合。
第二种方法是平的或者更databasey:
League hasA collection of Teams
Team hasA Conference
Team hasA Division
通过这种方法,你可以轻松地操纵根据司和会议团队和过滤器,但它是很难做的东西为司或会议(你必须通过所有的团队来找出哪些部门存在)
这一切都归结到手头的问题。我的主要问题是:
我想不出一个很好的理由不使用hierarhy方法。
我不知道你正在使用哪种语言,但假设你可以使用多态和类,我会说使用设计模式,如Composite Pattern。
设计你“复合”作为会议类和“叶”作为devision类。
这个想法是让会议类能够添加devisions到一个孩子列表,然后从调用一个函数,能够对这些孩子执行任何必需的操作。每个会议都可以有其他的会议,因此可以在不同的会议和他们的设计之间进行沟通。
这一切都取决于你如何编码它以及你需要执行什么操作。