【发布时间】:2015-03-15 13:20:29
【问题描述】:
我想设计一个电影类。现在,一部电影将有许多类型分配给它。前任。电影复仇者有流派:动作,冒险,科幻。现在,我的应用程序维护了一个可以将子集分配给电影的所有类型的列表。
我现有的模型设计有一个包含整个流派列表的电影实体。 Genre 类仅具有一个 IsSelected 属性,以帮助识别已分配给特定电影的流派子集。这提供了一个优势,因为当我设计用户界面来创建新电影时,我会显示所有可用的类型,用户从中选择/检查适用于电影的类型。
public class Movie
{
public ObservableCollection<Genre> MovieGenres { get; set; }
}
但是,我认为这种方法有一个缺点。假设我有大约 25 个流派列表和大约 500 部电影,那么会创建大约 25 x 500 个流派对象。
你认为这应该避免吗?
有没有更好的方法将流派与电影对象关联起来,这样可以减少创建这么多流派对象的需要并提供相同的 UI 优势?
或者有没有更好的方法来设计我可以通过模型设计来利用的用户界面?
(我没有使用任何ORM工具,以后也不打算使用)
【问题讨论】:
-
我只会将分配给该电影的流派存储在电影对象上,并具有用于添加新流派的单独功能。例如,考虑用于添加标签的 SE 系统。如果您真的想保持“显示所有流派并选择/取消选择项目”,那么我将拥有所有流派的单个列表,并将选中状态与 selectedMovie.Genres 列表以其他方式同步。 :)
标签: .net wpf observablecollection data-modeling class-design