2012-01-21 20 views
0

時々私のモデルの1つは別のモデルを呼び出す必要があります。これを追跡する最良の方法は何ですか?他のモデルを使用してモデルを追跡するにはどうすればよいですか?

モデルAがモデルBを複数回呼び出すと、2回目以降の呼び出しで新しいモデルを読み込むのではなく、既存のインスタンスが返されるように、各モデルの基本クラスに配列を使用していました。

これは単純なケースでは問題ありませんが、制限があることがわかります。たとえば、モデルAがモデルBとモデルCをロードする場合を考えます。モデルCはモデルB(またはA)にアクセスする必要があります - クラスを再びロードします!

モデルクラスの外部で、リポジトリとして機能する調整オブジェクトが必要と思われます。どんなパターンを見なければならないのですか?

私はPHPを使用しています。

EDIT:もう一つの考慮点は、私の見解がモデルメソッドを直接呼び出すかもしれないということです。これらのケースでは、新しいモデルではなく、すでにインスタンス化されたモデルを提供することが理にかなっています。

ありがとう!

答えて

0

そのような場合に使用されるobserver patternを見てください。

その簡単。各モデルは、リスナーでリストを持っているし、何かが、それはすべてのリスナーに言う起こったときちょっと何かが

を起こりました