たとえば、次のデータ構造がすべて Lemmas->PartsOfSpeech->ListOfWords のマッピングを実装しているとします (トピックの選択は任意であり、質問とは関係ありません)。
Map<ArrayList<Lemma>, Map<PartOfSpeech, ArrayList<Word>>> mainMap = new HashMap<>();
Map<ArrayList<Lemma>, PartOfSpeechWordMap> mainMap = new HashMap<>();
LemmaMap mainMap = new LemmaMap();
上記の構造の 1 つを含み、操作する と を含み、PartOfSpeechWordMap
操作する場所。Map<PartOfSpeech, ArrayList<Word>>
LemmaMap
リストは、最も透過的で複雑なものから、透過性が低く最も単純なものへと続きます。ただし、オブジェクト指向の観点からはどれが最適かはわかりません。リストが下に行くにつれて、より簡潔で単純な構文になっているにもかかわらず、何が起こっているのか理解するのがますます難しくなります。
この質問が少し主観的かもしれないことは理解していますが、このようなことを扱う際の標準的な業界慣行があるかどうか知りたいです.
編集:
私は考えていなかったし、可変キーの問題を考慮していませんでした。ImmutableList
Guavaごとに使用しているとしましょう。それにもかかわらず、私の質問のポイントは、さまざまなレベルの透明性に関して、OOP の観点からどの構造が最も理にかなっているのかということでした。