2つのコンストラクターがある方が良いですか、それとも1つにマージする必要がありますか?

マイケル

プロジェクトに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'}, {...}, {...}]
)
jmrk

ここには2つの別々の質問があると思います。

(1)コンストラクターを持つクラスを使用する必要があります{id: 0, name: "Jim", gymID: 0, ...}、それともオブジェクトリテラルのみを使用する必要がありますか?

かなり明確な答えがあると思います。同じ種類/形状のオブジェクトが複数ある場合は、クラスを使用する必要があり、そのクラスにはコンストラクターが必要です。(おそらくこれはいくぶん意見が分かれていますが、私はそれが合理的に論争の余地がないと思います。)

特定のケースでは(2)GymTrainer、べき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]

編集
0

コメントを追加

0

関連記事

分類Dev

APIに加えてフロントエンド/バックエンドに2つの別々のプロジェクトを使用する必要がありますか、それとも1つにマージする必要がありますか?

分類Dev

どちらがパフォーマンスに優れていますか:ページごとに1つのコントローラーですか、それとも1つのコントローラーに多数のページがありますか?

分類Dev

クライアントから並列リクエストを送信する必要がありますか、それとも1つのリクエストを送信してサーバー上で並列に実行する必要がありますか?

分類Dev

Wordpress-スクリプトを特定のページに分割する必要がありますか、それともマスターjsファイルを1つ持つ必要がありますか?

分類Dev

2つのストアドプロシージャの結果セットのマージは、データベース側で実行する必要がありますか、それともAPI側で実行する必要がありますか?

分類Dev

.NETモデルには0個の引数を持つコンストラクターが必要であるというエラーが発生し続けますか、それともオプションの引数のみが必要ですか?

分類Dev

NPM: 依存関係の依存関係の 1 つを使用する必要がありますか、それともルート レベルのプロジェクトに明示的にインストールする必要がありますか?

分類Dev

パラメータストレージクラス指定子を関数定義に配置する必要がありますか、それとも宣言と定義の両方に配置する必要がありますか?

分類Dev

Azure B2C-個別の顧客ごとに1つのB2Cテナントを作成する必要がありますか、それともすべての顧客に1つのB2Cテナントを作成する必要がありますか?ベストプラクティスは何ですか?

分類Dev

同じ列に2つのインデックスを使用する必要がありますか、それとも1つで十分ですか?

分類Dev

React-Nativeには質問のリストがあり、ページごとに2つの質問をレンダリングする必要があります。それを達成するための最良のアプローチは何ですか?

分類Dev

RuntimeError:モジュールはデバイスcuda:1(device_ids [0])にパラメーターとバッファーを持っている必要がありますが、デバイス:cuda:2でそれらの1つが見つかりました

分類Dev

2つの異なるオブジェクトをjasmine.toEqualと比較します。一方のオブジェクトは空で、もう一方のオブジェクトにはシンボルであるキーがありますが、なぜそれらが等しいと言うのですか?

分類Dev

パフォーマンスにとって何が良いですか?1つのディレクトリに多くのファイルがありますか、それともそれぞれが1つのファイルを持つ多くのサブディレクトリですか?

分類Dev

パフォーマンスにとって何が良いですか?1つのディレクトリに多くのファイルがありますか、それともそれぞれが1つのファイルを持つ多くのサブディレクトリですか?

分類Dev

マングーススキーマ、異なるタスクのために1つあるか、複数ある方が良いですか?

分類Dev

基板ランタイムモジュールと基板スマートコントラクトはいつ構築する必要がありますか?

分類Dev

Mobo Raidコントローラーを有効にする必要がありますか、それともAHCIのままにする必要がありますか?

分類Dev

2つのjsonドキュメントがあります。Pythonを使用して、最初のオブジェクトのキーが2番目のオブジェクトに存在するかどうかを比較する必要があります。それらの両方がネストされています

分類Dev

djangoでビデオを複数の解像度にエンコードするための最良の方法はどれですか?単一のセロリタスクを作成する必要がありますか、それともエンコードする複数のタスクを用意する必要がありますか?

分類Dev

Composerをすべてのプロジェクトにインストール/コピーする必要がありますか、それとも1か所に保存する必要がありますか?

分類Dev

リクエスト内にexecutorServiceを作成する必要がありますか、それともWebアプリ全体で1つのインスタンスを共有する必要がありますか?

分類Dev

Schemeで2つのリストをマージし、それぞれから1つの要素を取得する必要があります

分類Dev

3 つすべての考案アクションのパラメーターをサニタイズする必要がありますか、それとも良い習慣ですか?

分類Dev

クラスの2つのコンストラクターを作成するにはどうすればよいですか?両方とも文字列、文字列を持ちますが、目的が異なりますか?

分類Dev

データフレームに2つの列があり、1つには列名があり、もう1つには列名がありません。Pythonパンダで両方に名前を付けるにはどうすればよいですか?

分類Dev

クライアントサーバーコードは1つまたは2つの「プロジェクト」で作成する必要がありますか?

分類Dev

ケラス損失は、バッチごとに1つのスカラーを出力する必要がありますか、それともバッチ全体に対して1つのスカラーを出力する必要がありますか?

分類Dev

コンストラクターをconstexprとして設定する必要があるのはいつですか?

Related 関連記事

  1. 1

    APIに加えてフロントエンド/バックエンドに2つの別々のプロジェクトを使用する必要がありますか、それとも1つにマージする必要がありますか?

  2. 2

    どちらがパフォーマンスに優れていますか:ページごとに1つのコントローラーですか、それとも1つのコントローラーに多数のページがありますか?

  3. 3

    クライアントから並列リクエストを送信する必要がありますか、それとも1つのリクエストを送信してサーバー上で並列に実行する必要がありますか?

  4. 4

    Wordpress-スクリプトを特定のページに分割する必要がありますか、それともマスターjsファイルを1つ持つ必要がありますか?

  5. 5

    2つのストアドプロシージャの結果セットのマージは、データベース側で実行する必要がありますか、それともAPI側で実行する必要がありますか?

  6. 6

    .NETモデルには0個の引数を持つコンストラクターが必要であるというエラーが発生し続けますか、それともオプションの引数のみが必要ですか?

  7. 7

    NPM: 依存関係の依存関係の 1 つを使用する必要がありますか、それともルート レベルのプロジェクトに明示的にインストールする必要がありますか?

  8. 8

    パラメータストレージクラス指定子を関数定義に配置する必要がありますか、それとも宣言と定義の両方に配置する必要がありますか?

  9. 9

    Azure B2C-個別の顧客ごとに1つのB2Cテナントを作成する必要がありますか、それともすべての顧客に1つのB2Cテナントを作成する必要がありますか?ベストプラクティスは何ですか?

  10. 10

    同じ列に2つのインデックスを使用する必要がありますか、それとも1つで十分ですか?

  11. 11

    React-Nativeには質問のリストがあり、ページごとに2つの質問をレンダリングする必要があります。それを達成するための最良のアプローチは何ですか?

  12. 12

    RuntimeError:モジュールはデバイスcuda:1(device_ids [0])にパラメーターとバッファーを持っている必要がありますが、デバイス:cuda:2でそれらの1つが見つかりました

  13. 13

    2つの異なるオブジェクトをjasmine.toEqualと比較します。一方のオブジェクトは空で、もう一方のオブジェクトにはシンボルであるキーがありますが、なぜそれらが等しいと言うのですか?

  14. 14

    パフォーマンスにとって何が良いですか?1つのディレクトリに多くのファイルがありますか、それともそれぞれが1つのファイルを持つ多くのサブディレクトリですか?

  15. 15

    パフォーマンスにとって何が良いですか?1つのディレクトリに多くのファイルがありますか、それともそれぞれが1つのファイルを持つ多くのサブディレクトリですか?

  16. 16

    マングーススキーマ、異なるタスクのために1つあるか、複数ある方が良いですか?

  17. 17

    基板ランタイムモジュールと基板スマートコントラクトはいつ構築する必要がありますか?

  18. 18

    Mobo Raidコントローラーを有効にする必要がありますか、それともAHCIのままにする必要がありますか?

  19. 19

    2つのjsonドキュメントがあります。Pythonを使用して、最初のオブジェクトのキーが2番目のオブジェクトに存在するかどうかを比較する必要があります。それらの両方がネストされています

  20. 20

    djangoでビデオを複数の解像度にエンコードするための最良の方法はどれですか?単一のセロリタスクを作成する必要がありますか、それともエンコードする複数のタスクを用意する必要がありますか?

  21. 21

    Composerをすべてのプロジェクトにインストール/コピーする必要がありますか、それとも1か所に保存する必要がありますか?

  22. 22

    リクエスト内にexecutorServiceを作成する必要がありますか、それともWebアプリ全体で1つのインスタンスを共有する必要がありますか?

  23. 23

    Schemeで2つのリストをマージし、それぞれから1つの要素を取得する必要があります

  24. 24

    3 つすべての考案アクションのパラメーターをサニタイズする必要がありますか、それとも良い習慣ですか?

  25. 25

    クラスの2つのコンストラクターを作成するにはどうすればよいですか?両方とも文字列、文字列を持ちますが、目的が異なりますか?

  26. 26

    データフレームに2つの列があり、1つには列名があり、もう1つには列名がありません。Pythonパンダで両方に名前を付けるにはどうすればよいですか?

  27. 27

    クライアントサーバーコードは1つまたは2つの「プロジェクト」で作成する必要がありますか?

  28. 28

    ケラス損失は、バッチごとに1つのスカラーを出力する必要がありますか、それともバッチ全体に対して1つのスカラーを出力する必要がありますか?

  29. 29

    コンストラクターをconstexprとして設定する必要があるのはいつですか?

ホットタグ

アーカイブ