1

我正在用 Java编写一个小型词汇查看器。你可以

  • 将词汇添加到语言
  • 在语言之间切换
  • 查看每种语言的概述(有很多词汇)
  • 详细看词汇

有趣的是,如果在多种语言中添加了一个词汇表,我想显示所有语言的翻译(我知道这会导致语言学方面的错误连接,但这只是为了训练我的 Java 技能)。

目前我有以下课程:

  • VocabularyList (Observable),对于许多人来说,这只是一个列表实现,<Vocabulary>带有用于按语言等检索的附加方法。我的所有概述页面都观察到这个列表,当这个列表中的某些内容发生变化时,它会刷新视图。
  • Vocabulary它用于保存所有语言的HashMap<Language, ArrayList<String>> meanings所有含义(例如,我可以说德语中的helfen与英语中的helpaid的含义相同)。
  • Language这只是一个表示语言的类(通过 ISO 代码和名称)

目前,我还将所有内容都存储在同一个序列化文件中。我想要序列化而不是数据库来让整个事情变得简单。

但是,我感觉这个模型是完全错误的,因为:

  • 我无法分别访问每种语言的词汇表(即使我的程序中有语言的选择字段),所以每次用户观看概览页面时我都必须遍历整个列表
  • 即使有人只观看概述(而不是包含所有语言翻译的详细信息页面),我也总是承担所有语言的开销

但是,如果我想保持所有不同词汇语言之间的关系,我真的不知道应该如何更好地实现它。

下一个想法是:

  • 为每种语言创建一个词汇表

但是那样整个关系的事情就会很困难。例如,如果我从俄语列表中删除了一个词汇表,我将不得不从所有其他语言列表中删除指向它的所有链接。

你会建议什么模型设计?我完全同意还是它已经以某种方式正确?作为 Web 开发人员,我一直只使用数据库(主要是关系数据库),在这种情况下,我只需要删除多对多关系表中的条目。但是在处理对象时,一切似乎都不同了。

4

0 回答 0