今日、同僚から次の電子メールが届きました。私の質問はこれが正確です。ネストビジネスオブジェクトは悪い練習ですか?誰もこれに輝くことができますか?C#(OOP)ネストされたビジネスオブジェクト
ネストされたオブジェクト C#で変数を作成すると、Webサーバー上のメモリが占有されます。同じサーバー上で多くのツールを実行するので、オブジェクトを使用する予定がない場合は、オブジェクトを作成しないようにすることがさらに重要です。
上記の2番目の従業員オブジェクトを例として使用する...従業員のスーパーバイザIDを知る必要がある場合(そして、すべてのツールが投入され使用されていた場合)、Employeeクラスに適切な情報また、ツールのメモリとプロセスを考慮しています。
Employeeクラスに 'supervisorId'文字列変数を追加し、適切なGettersとSettersを追加します。
私たちは、従業員オブジェクト内の別のオブジェクトを入れ子にすることを避けたいと考えています。そのような: public class Employee { プライベート文字列firstName; プライベート文字列lastName; プライベート文字列empId; 社員従業員の監督者。この場合
public string FirstName {
get { return firstName; }
set { firstName = value; }
}
public string LastName {
get { return lastName; }
set { lastName = value; }
}
public string EmpId {
get { return empId; }
set { empId = value; }
}
public Employee Supervisor{
get { return supervisor; }
set { supervisor = value; }
}
}
我々は常にEmployeeオブジェクトの「スーパーバイザー」インスタンス内の値を使用することはできませんが、変数がメモリ内に作成されます。これは、パフォーマンスに潜在的に壊滅的な影響を与える可能性があります。
オブジェクトの入れ子が必要な場合があります。 例:(カテゴリ::質問)各カテゴリには、割り当てられた質問の配列リストがあります。
モデルの追加プロパティではなく別のオブジェクトとしてMfgとTypeを使用する方法では、オブジェクトごとのメモリオーバーヘッドが小さいため、より多くのメモリを消費しますが、かなりです簡単。サーバーがクラッシュする場合は、最初にサーバーをあまりにも大きく負荷していることになります。 – MusiGenesis
これらの個別のオブジェクトを作成することで、モデルごとに複数のタイプが存在するか、モデルごとに複数のMfgが存在する状況を容易にリファクタリングできます。 – MusiGenesis
私はジョセフの答えが正しいと思います。あなたの同僚は、まったくの愚かさに接する時期尚早な最適化に苦しんでいるだけです。 – MusiGenesis