2

たとえば、次のデータ構造がすべて 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

リストは、最も透過的で複雑なものから、透過性が低く最も単純なものへと続きます。ただし、オブジェクト指向の観点からはどれが最適かはわかりません。リストが下に行くにつれて、より簡潔で単純な構文になっているにもかかわらず、何が起こっているのか理解するのがますます難しくなります。

この質問が少し主観的かもしれないことは理解していますが、このようなことを扱う際の標準的な業界慣行があるかどうか知りたいです.

編集:
私は考えていなかったし、可変キーの問題を考慮していませんでした。ImmutableListGuavaごとに使用しているとしましょう。それにもかかわらず、私の質問のポイントは、さまざまなレベルの透明性に関して、OOP の観点からどの構造が最も理にかなっているのかということでした。

4

2 に答える 2

1

これはこの質問に適切なサイトではないと言いますが、ほとんどの人は最も使いやすい API の使用を提案すると思います。これにより、不適切に使用される可能性を減らすことができます (キー配列に要素を追加するなど)。また、必要に応じて、基礎となる実装の詳細を変更することもできます。

于 2013-07-02T18:55:40.527 に答える