【发布时间】:2010-10-04 22:57:08
【问题描述】:
我正在尝试找出最好的方式来解决这个问题。我将解释我现在所拥有的,但我想知道是否有更好的方法来做到这一点。
我有一个具有基本属性的类 Section:名称、描述等。我使用部分列表供用户选择。他们可以根据需要向 Parent 对象和任意数量的 Section 添加一个 Section。
当他们向父级添加一个 Section 时,他们必须指定它属于哪个组(比如说 group1、group2、group3)以及它将以什么顺序显示。这个 Group 属性不在桌面上,当我列出供用户选择的 Sections 时不需要组,这没有意义。将这部分视为他们添加的具有额外属性的克隆。
我有另一个表,它有一个外键到 Parent 和 Section。许多部分可以添加到 1 个父级。在此链接表上还有他们添加的每个部分的 Grouping 和 DisplayOrder 列(以及其他一些列)。
所以当我创建 Parent 对象并查询其 Sections 的集合时,我是否想尝试使用相同的 Section 类并添加一个 Grouping 属性?
Section 1
Section 2
Section 3
Parent 1
Section 1 - Group = g1, DisplayOrder = 1
Section 1 - Group = g2, DisplayOrder = 2
Section 2 - Group = g2, DisplayOrder = 3
Section 3 - Group = g3, DisplayOrder = 4
Parent 2
Section 4 - Group = g3, DisplayOrder = 1
Section 1 - Group = g2, DisplayOrder = 2
Section 2 - Group = g3, DisplayOrder = 3
如果您不知道我在说什么,请告诉我,我会尽力解释得更好……或者我会删除它并假装我从未问过。 =P
【问题讨论】:
-
当您向父级添加一个部分时,您是在添加一个新部分还是对一个可能被多次添加的部分的引用?
-
我正在添加对已经存在的 Section 的引用,但在该引用中我添加了 Group 和 DisplayOrder 等额外字段
-
如果是 /same/ 部分,那么您需要一个类来包含该部分以及不会共享的唯一信息。
标签: c# architecture oop object