设计:访问儿童收藏品,同时避开父母!

时间:2009-08-24 06:17:08

标签: c# winforms oop

注意:WinForms C#早期学习水平!

我希望获得一些在C#对象环境中实现情境的最佳方法的帮助。我不能发布代码,因为它还不存在,但是我可以给你一个替代的现实生活比较。

简单来说(因为我的工作方式)我有一个Book类。我有这些Book类的集合(<List>)。 在每个Book类中,我有一个章节类的集合(<List>)。本书和章节类基于完全不同的抽象类。它们在单独的业务层中定义,数据从数据源层加载。请记住,有很多书和许多章节。

从我的GUI层,我可以检索一本书,它是基于集合索引/键的基础属性。我也可以通过Book课程获得本书中的所有章节。

我需要做的是能够从任何一本书中获取任何章课,而无需通过Book课程。 实现这一目标的最佳方法是什么?

谢谢大家和女士们

3 个答案:

答案 0 :(得分:2)

“get”是什么意思。你期望所有的章节都在记忆中吗?或者我们正在搜索数据库?

什么信息标识章节?

让我们假设所有章节(或者如果不是章节的全文,那么章节描述符)都在内存中。你有一个由ChapterIdentity键入的章节集合(也许是BookId + ChapterNumber)。

那么它只是

ChapterCollection.getById(aChapterId);

添加图书时,需要将其所有章节添加到集合中。

更可能是来自数据库。所以你想要能够通过id检索章节。这一切都取决于你如何做持久性,但从概念上看,就像从猎头的角度看内存中的例子一样。

答案 1 :(得分:1)

为什么你不想通过书课?实际上,您只有两个选项 - 搜索书类对象的列表或维护包含所有书籍中所有章节的辅助集合对象。 我假设你将会搜索某个键,这是章类的一个属性?如果是这样,您可以使用快速搜索的词典(键,章节),或者保留List(of Chapter)并使用LINQ搜索它。 这取决于你在搜索什么以及你避免书类的原因。

答案 2 :(得分:0)

如果您没有浏览书籍类,则需要有一个“库”集合,其中包含对所有章节对象的引用。