PHP デザイン パターン - プロキシ パターン

WBOY
リリース: 2016-06-20 12:25:39
オリジナル
790 人が閲覧しました

プロキシ パターン定義

このオブジェクトへのアクセスを制御するために、他のオブジェクトにプロキシを提供します。場合によっては、あるオブジェクトが適切でないか、別のオブジェクトを直接参照できない場合、プロキシ オブジェクトがクライアントとターゲット オブジェクトの間の仲介者の役割を果たすことができます。

主な役割

抽象的な役割: インターフェイスまたは抽象クラスを介して、実際のロールによって実装されるビジネス メソッドを宣言します。

エージェント ロール: 抽象ロールを実装し、実際のロールのビジネス ロジック メソッドを通じて抽象メソッドを実装し、独自の操作を付加できます。

実際のロール: 抽象ロールを実装し、実際のロールによって実装されるビジネス ロジックを定義し、エージェント ロールによって呼び出されます。

利点

明確な責任

プロキシ オブジェクトはクライアントとターゲット オブジェクトの間の仲介者として機能するため、仲介者の役割を果たし、ターゲット オブジェクトを保護します。効果。

高いスケーラビリティ

プロキシ モード インスタンス

<?php  //抽象角色interface IGiveGift  {      function giveRose();      function giveChocolate();  }    //真实角色class Follower implements IGiveGift  {      private $girlName;        function __construct($name='Girl')      {          $this->girlName=$name;      }        function giveRose()      {          echo "{$this->girlName}:送你的玫瑰<br/>";      }        function giveChocolate()      {          echo "{$this->girlName}:送你的巧克力<br/>";      }  }    //代理角色class Proxy implements IGiveGift  {      private $follower;        function __construct($name='Girl')      {          $this->follower=new Follower($name);      }        function giveRose()      {          $this->follower->giveRose();      }        function giveChocolate()      {          $this->follower->giveChocolate();      }  }$proxy=new Proxy('xxx');  $proxy->giveRose();  $proxy->giveChocolate();
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!