私はこれのためのベストプラクティスを知りません。 のは、私はいくつかの階層のオブジェクトがあるとしましょう:オブジェクト間の通信
Neighborhood
Family
したがって、各家族は近所に住んでいます。各オブジェクトモデルは、それが自身のデータベーステーブルです
class Neighborhood {
public $id;
public $name;
public $nr_families;
}
class Family {
public $id;
public $name;
public $neighborhood_id;
}
: オブジェクトは、次のようにマッピングされています。ある型のすべてのオブジェクトは、グローバルなscapeの配列に保持されているので、2つの配列があります。
Neighborhoodオブジェクトの内側から、作成日に、データベースを再度照会したり、ファミリのグローバル配列にアクセスすることなく、その近隣にいくつのファミリがあるかをどのように知ることができますか?ファミリ配列が最初に生成され、すでにそこにあるとしましょう。そして、私がNeighborhood配列を生成するとき、これらのオブジェクトはそれぞれのファミリの総数を持つプロパティを持つ必要があります。このプロパティはデータベースフィールドと一致しません。そのフィールドは即時に計算する必要があります。
デザインパターンはありますか?私はある種の第3のオブジェクトを使うべきですか?
しかし、家族の数があまりにもその近所のプロパティことはできませんか?私はファミリーオブジェクトに関する情報を保存しません。 – Dan
確かに、あなたはそれを怠惰にロードすることができます - 編集された答えを見てください。近隣の家族の数が、物件や接待人(ゲッター)を介してアクセスされるかどうかは、誰が気にしますか。アクセサはより柔軟です。 – alexantd