0

ディクショナリを作成する必要があるボーグル ソルバーをコーディングしています。私のアプローチは、次のような静的初期化を行うことです。

private static final Set<String> dictionayKeys = DictionaryReader.populateDictionaryWords("/../dictionary.text);

詳細を追加するために、ボーグル ソルバーは、単語が含まれているかどうかを確認するために DictionaryKeys のみを使用し、次に DictionaryKeys などを使用します。dictionaryKeys.contains(currWord)

今質問 - 私は遅延初期化について読んでいて、ファイル IO が関係していることを考えると、この例が遅延初期化の理想的な候補になるかどうか疑問に思っていますか?

4

1 に答える 1

2

おそらくこの状況ではありません。ある時点で常に辞書にデータを入力する必要はありませんか? プログラムを開始するときは、ディクショナリにデータを入力できるようにもう少し待ってから、ゲームをプレイしているときにプログラムが遅延してデータを入力しているときにプログラムがハングしているように見えるようにしたいと思います。

高価な操作であり、データが常に必要であるとは限らない場合は、遅延初期化を使用する方がよいと思います。たとえば、エンティティのすべてのユースケースがデータのその部分を必要とするわけではなく、明示的に要求するものだけが必要になるため、エンティティのキ​​ーに関連しないエンティティ オブジェクトのフィールドの一部を hibernate が遅延ロードする可能性があります。

于 2013-10-20T19:43:33.570 に答える