0

我正在编写一个 boggle 求解器,我需要为其填充字典。我的方法是进行静态初始化,例如:

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

要添加更多详细信息,boggle 求解器将仅使用 dictionaryKeys 来验证是否包含一个单词,然后是 dictionaryKeys,例如dictionaryKeys.contains(currWord)

现在的问题 - 我一直在阅读延迟初始化,并想知道这个示例是否是延迟初始化的理想候选者,考虑到所涉及的文件 IO ?

4

1 回答 1

2

在这种情况下可能不会。你不是总是需要在某个时候填充字典吗?我宁愿在启动程序时等待更长的时间,以便它可以填充字典,然后在我玩游戏时让程序看似挂起,而它却懒惰地填充它。

我认为当它是一项昂贵的操作并且并不总是需要数据时,最好使用延迟初始化。例如,hibernate 可能会延迟加载与实体键无关的实体对象的某些字段,因为并非实体的每个用例都需要这部分数据,只有明确要求的部分。

于 2013-10-20T19:43:33.570 回答