1. 代理店モデルの概念
注: 名前が示すように、このモードはメソッド関数を実行するために別のクラスを置き換えるために使用されます。違いは、プロキシ モードがクライアントに代わってプロキシ オブジェクト クラスを初期化することです。一方、デコレーション モードではインターフェイスが使用されるか、初期デコレータ パラメータ参照が実行に使用されます。
説明: 不動産業者は売主が買主に家を売るのを手伝うことができ、買主は購入したい住宅のタイプを提案することもできます。中間ステップの処理に役立ちます。最終的に取引が成立します。仲介業者は、同時に多くの住宅の販売と賃貸の代理店として機能できます。
2. プロキシモードの役割と注意事項
モード機能:
1. リモート プロキシ (1 つのオブジェクトが別のスペースにあるオブジェクトをローカルにプロキシします)
2. 仮想プロキシ (Web ページをレンダリングするときに実際の画像を一時的にプレースホルダーに置き換えるなど、必要に応じて高価なオブジェクトを作成します)
3. セキュリティエージェント (確認されたオブジェクトへのアクセス権を制御)
4. インテリジェントなガイダンス (ガベージ コレクション メカニズムなどの他の処理を行うためにオブジェクト エージェントを呼び出す)
注:
1. プロキシを悪用しないでください。コードが複雑になるだけです
3. エージェント モードのコードと実践的な概要
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <script> //代理模式需要三方 //1.买家 function maijia(){ this.name = "小明"; this.money = "30万"; } //2.中介 function zhongjie(){ } zhongjie.prototype.maifang = function(){ //new fongdong(new maijia()).maifang("20万"); new fongdong(new maijia()).maifang("20万"); } //3.卖家 function fongdong(maijia){ this.maijia_name = maijia.name; this.maijia_money = maijia.money; this.maifang = function(money){ // alert("收到了来自【"+this.maijia_name+"】"+money+"人民币"); alert("收到了来自【"+this.maijia_name+"】"+this.maijia_money+"人民币"); } } (new zhongjie()).maifang(); </script> <script> // A2B function A(){ this.money = "20RMB"; } function to(){ if(!(this instanceof to)){ return new to; } } to.prototype.maifang = function(){ var a = new A(); new B().maifang(a.money); } function B(){ this.maifang = function(money){ alert("收到了钱"+money); } } (new to()).maifang(); to().maifang(); </script> </body> </html>