Oop 新颖的面向对象设计方法
我正在创建小说或书籍的面向对象表示。我正在寻找设计模式或建议,关于如何制作一个对象,以及如何制作另一个对象的属性 例如,假设我对小说中的人物感兴趣,以及他们出现在哪些章节和页面上 我正在努力解决的概念是如何用两种类型的“容器”组织一个对象系统,这两种容器都参与到与相同实例的关系中。我想这会在其他系统中出现,在这些系统中,对底层数据有一个隐喻性的“物理”和“逻辑”视图 这里有各种可能的对象:小说、章节、页面、人物 这些可能的对象之间存在多种关系:Oop 新颖的面向对象设计方法,oop,design-patterns,data-modeling,Oop,Design Patterns,Data Modeling,我正在创建小说或书籍的面向对象表示。我正在寻找设计模式或建议,关于如何制作一个对象,以及如何制作另一个对象的属性 例如,假设我对小说中的人物感兴趣,以及他们出现在哪些章节和页面上 我正在努力解决的概念是如何用两种类型的“容器”组织一个对象系统,这两种容器都参与到与相同实例的关系中。我想这会在其他系统中出现,在这些系统中,对底层数据有一个隐喻性的“物理”和“逻辑”视图 这里有各种可能的对象:小说、章节、页面、人物 这些可能的对象之间存在多种关系: 小说有一系列的章节、一系列的页面和一系列的人物
- 小说有一系列的章节、一系列的页面和一系列的人物
- 章节有一系列的页面和零个或多个字符的集合
- 页面与一个或多个章节以及零个或多个字符相关联
- 字符与一个或多个页面和章节相关联
- 角色爱丽丝出现在什么页面上
- 第六章中出现了哪些人物
- 哪些字符经常出现在同一页上
- 鲍勃第一次提到的角色是哪一页
- 将所有内容(小说、章节、页面、角色)都设置为对象,并且每个对象都有对其包含/相关的其他对象的引用列表
- 将章节或页面的一个或另一个放在首位,并将另一个作为第一个的属性。例如,我们可以只使用小说、章节和角色对象列表,并将“页面”作为章节对象的属性
- 我们可以将上述想法更进一步,只需坚持小说和人物,并为每个人物赋予一些属性,例如:“发生在章节中”和“发生在页面上” 好吧,我希望这足够清楚,让一些OO设计大师建议在对象或属性之间划清界限,以及如何设计一个对象系统,其中有感兴趣的对象(角色)所属的不同类型的容器(章节、页面)
- 使用数据结构预缓存答案所需的元数据(例如。 显式存储字符出现的页面列表)
- 存储“原始数据”(例如,作为小说>章节>页面>文本的树),然后对其进行处理以回答给定问题
- 两者的某种结合
页面
的实例将引用文本
的实例,而不是字符
,后者将成为元数据类
元数据可以预缓存,也可以通过拖网原始数据按需生成
无论哪种方式,您都需要规范化您的数据模型,感谢您的见解,非常有帮助。