2

プロキシ オブジェクトは別のオブジェクト/エンティティのエイリアスのようなものだと言うのは正しいですか? プロキシ オブジェクトはどのように使用されますか? 誰でも基本的な例を挙げてもらえますか?

どんな返信でも大歓迎です。

4

1 に答える 1

7

GOF - デザイン パターンブックから:

プロキシ オブジェクトは、別のオブジェクトへのアクセスを制御するためのサロゲートまたはプレースホルダーを提供します。

したがって、クラス A (プロキシ) は B (RealObject) クラスを拡張したり、そのインターフェイスを実装したりできます。通常、プロキシは、呼び出し元がプロキシに直面していることを知らずに、呼び出し元と実際のオブジェクトの間でいくつかの中間ステップを実行します。

プロキシの概念からは、さらに多くの具体的なパターンが生まれます。Decorator (より多くの機能を追加する)、Remote Proxy (オブジェクト間の通信を隠す)、Protection Proxy (オブジェクト間の通信を制御する)、Lazy Instantiation (成長するオブジェクトのロードを延期するのは、が必要です)など。これらのすべてのパターンは、実際のオブジェクトにメソッドを追加するのではなく、既存のメソッドにいくつかの機能を追加します。

Practical php patterns book の Giorgio Sironi の例を読むことをお勧めします。

実際の例として、 Doctrine は関連するオブジェクトの遅延読み込みにプロキシを使用します

于 2012-09-21T19:00:34.290 に答える