简而言之:
在启动 Java/Android 应用程序时,考虑使用硬编码值初始化的数据数组。然后,在运行时,一个类可以读取该数据。它将要访问的数组中的确切元素取决于运行时的用户输入。
详细地:
考虑一个填字游戏应用程序。从主屏幕中,您选择要玩的填字游戏。一个填字游戏(类),创建多个问题(类)。为了创建一个问题,它使用两个字符串进行初始化:“问题”和“答案”。为了让填字游戏创建所有问题,它需要知道哪些问题属于它。当用户从列表中选择填字游戏时,它会传递一个 ID,该 ID 将映射到(可能)多维数组的元素索引,其中每个外部数组代表一组填字游戏问题,每个内部数组代表其中的问题填字游戏。类似于下面:
Array(
// crossword 1
[0] => Array(
// question 1
[0] => Array(
[0] => 'question'
[1] => 'answer'
)
// question 2
[1] => Array(
[0] => 'question'
[1] => 'answer'
)
)
// crossword 2
[1] => Array(
// question 1
[0] => Array(
[0] => 'question'
[1] => 'answer'
)
// question 2
[1] => Array(
[0] => 'question'
[1] => 'answer'
)
)
)
好的,所以用户选择填字游戏 1,我现在创建一个填字游戏对象,通过访问全局数组的索引 1 创建多个问题对象。就像是:
Q1 = new Question(globalArr[1][0][0], globalArr[1][0][1]);
Q2 = new Question(globalArr[1][1][0], globalArr[1][1][1]);
我的问题:
我想(希望)对此有更优雅的 OOP 解决方案。假设有,我会很感激有人分享他们的知识。单例设计会在这里发挥作用吗?
这里的主要目标是使每个问题的硬编码信息可供整个应用程序(或至少一个类)访问