要するに:
Java/Android アプリケーションの起動時に、ハードコードされた値で初期化されるデータの配列を検討してください。その後、実行時に、クラスはそのデータから読み取ることができます。アクセスする配列の正確な要素は、実行時のユーザー入力に依存します。
詳細に:
クロスワード アプリケーションを考えてみましょう。メイン画面から、プレイしたいクロスワードを選択します。クロスワード (クラス) は、複数の質問 (クラス) を作成します。質問を作成するには、'question' と 'answer' の 2 つの文字列で初期化します。クロスワードがすべての質問を作成するには、どの質問がそれに属しているかを知る必要があります。ユーザーがリストからクロスワードを選択すると、(おそらく) 多次元配列の要素インデックスにマップされる 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 ソリューションがあると思います (願っています)。あると仮定して、誰かが知識を共有していただければ幸いです。ここでシングルトン設計が機能しますか?
ここでの主な目標は、各質問に関するハードコーディングされた情報を、アプリケーション全体 (または少なくともクラス) からアクセスできるようにすることです。