プロジェクトに2つのコンストラクターがあります。1つ目はジムに関する情報で、2つ目はそのジムのすべてのパーソナルトレーナーです。
こんな感じ
class Gym {
constructor (
id,
name,
GymId,
address,
imageUrl,
description
)
}
class Trainer {
constructor (
id,
name,
gymID,
yearsExperience,
Gender,
description,
imageUrl
)
}
GymIdが等しいかどうかを確認して、トレーナーとジムをリンクします。私の質問は、体育の授業でトレーナーのデータをネストしたほうがよいでしょうか。したがって、私のジムクラスにはのような追加のプロパティがありtrainers
ます。私のデータは次のようになります。
new Gym (
0,
'Fitness First',
0,
'some random address',
'image link'
'This is a cool gym'
[{id: 0, name: Jim, 0, 10, Male, 'Good Guy', 'imageURL'}, {...}, {...}]
)
ここには2つの別々の質問があると思います。
(1)コンストラクターを持つクラスを使用する必要があります{id: 0, name: "Jim", gymID: 0, ...}
か、それともオブジェクトリテラルのみを使用する必要がありますか?
かなり明確な答えがあると思います。同じ種類/形状のオブジェクトが複数ある場合は、クラスを使用する必要があり、そのクラスにはコンストラクターが必要です。(おそらくこれはいくぶん意見が分かれていますが、私はそれが合理的に論争の余地がないと思います。)
特定のケースでは(2)Gym
とTrainer
、べきGym
クラスは、そのリストのプロパティ有するTrainer
のか?
これは、アプリのニーズに実際に依存する設計上の決定です。これに対して一般的な答えを出すことは不可能だと思います。gym
インスタンスがあり、そのトレーナーを繰り返し処理したいという状況が頻繁に発生する場合は、すべてのジムのすべてのトレーナーの膨大なグローバルリストをフィルタリングするよりも、そのリストを事前に入力しておく方が効率的です。トレーナーを別のジムに頻繁に再割り当てする場合は、2つのジムを見つけて、一方のリストからトレーナーインスタンスを削除し、もう一方のリストに追加するよりも、1つのプロパティを更新する方が簡単で高速です。
トレーナーのリストを決定した場合でも、Gym
コンストラクターを使用してリストに入力できます。そのTrainer
場合、クラスは、gymID
フィールドが必要かどうかに応じて、フィールドを必要とする場合と必要としない場合があります。両方の機能を備えたサンプルコード:
class Gym {
constructor(id, name, ..., trainers) {
this.id = id;
// ...
this.trainers = trainers;
for (let trainer of trainers) {
trainer.gymId = this.id;
}
}
}
let trainers = [
new Trainer(0, "Jim", ...),
new Trainer(1, "Mary", ...)];
let gym = new Gym(0, "Fitness First", ..., trainers);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加