私はJavaで小さな語彙ビューアをプログラミングしています。あなたはできる
- 言語に語彙を追加する
- 言語を切り替える
- 各言語の概要を参照してください(多くの語彙があります)
- 語彙を詳しく見る
興味深いのは、語彙が多くの言語で追加されている場合、すべての言語の翻訳を表示したいということです(これは言語学の観点から間違った接続につながる可能性があることを知っていますが、とにかく私のJavaスキルをトレーニングするためだけです)。
現在、次のクラスがあります。
VocabularyList (Observable)
、これは、言語などで取得するための追加のメソッドを備えた多くのリストの実装にすぎませ<Vocabulary>
ん。このリストは、すべての概要ページで確認できます。このリストの何かが変更されると、ビューが更新されます。Vocabulary
これは、すべての言語でHashMap<Language, ArrayList<String>> meanings
すべての意味を保存するために使用されます(たとえば、ドイツ語のhelfenは、英語のヘルプまたは援助と同じ意味であると言えます)。Language
これは、言語を表すためのクラスにすぎません(ISOコードと名前で)
また、現時点ではすべてを同じシリアル化ファイルに保存しています。全体を簡単にするために、データベースではなくシリアル化をしたいと思います。
ただし、このモデルは完全に間違っていると感じています。理由は次のとおりです。
- 各言語の語彙に個別にアクセスすることはできません(プログラムに言語の選択フィールドがありますが)。そのため、ユーザーが概要ページを見るたびにリスト全体を繰り返す必要があります。
- 誰かが概要だけを見ている場合でも(すべての言語の翻訳が記載された詳細ページではない)、私は常にすべての言語のオーバーヘッドを負担します
しかし、すべての異なる語彙言語間の関係を維持したいのであれば、どのようにそれをより良く実装すべきかは本当にわかりません。
次のアイデアは次のとおりです。
- 言語ごとに1つの語彙リストを作成します
しかし、その後、関係全体が難しいでしょう。たとえば、ロシア語のリストから語彙を削除した場合、他のすべての言語リストからその語彙へのすべてのリンクを削除する必要があります。
どのモデルデザインを提案しますか?私は完全に邪魔ですか、それともすでに何とか正しいですか?Web開発者として、私は常にデータベース(ほとんどはリレーショナル)を使用してきましたが、そのような場合は、多対多のリレーションシップテーブルのエントリを削除するだけで済みます。しかし、オブジェクトを操作するときは、すべてが異なるように見えます。