ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript設計パターンのプロキシパターン入門_JavaScriptスキル
プロキシ モードの説明
注: 名前が示すように、このモードはメソッド関数を実行するために別のクラスを置き換えるために使用されます。違いは、プロキシ モードがクライアントに代わってプロキシ オブジェクト クラスを初期化することです。一方、デコレーション モードではインターフェイスが使用されるか、初期デコレータ パラメータ参照が実行に使用されます。
動的オブジェクト指向言語では、プロキシ モードはプロキシ クラスを制御および変更するだけでなく、プロキシ クラスを完全に非表示にして保護します。プロキシ クラスは必要なときにのみ間接的に初期化され、呼び出されます。
シーンの説明:
非常に一般的な例は、家を借りる場合です。借主は家を借りたいが、家主も家を探したり、誰かを待ったりする時間がありません。自宅の家を見たいので、一緒に住宅仲介業者に行きます。家主は仲介業者に部屋の賃貸・売買を委託し、仲介業者が部屋を紹介し、賃貸料を支払います。エージェントが要求する部屋の位置条件を満たしていること。エージェントがテナントのシェアルーム探しを支援した後、二人はその部屋を借りる料金を支払い、テナントに場所を借ります。
ソースコードの例
上記の例に従います;
1. 家主の賃貸料;
2. 仲介エージェントクラス:
This.fangdong.chuzu();
console.log('レンタル後は仲介手数料がかかります');
}
3. 使用方法:
上記の使用法を見てください。クライアント側ではプロキシ クラスはまったく必要ありません。プロキシ クラスを使用するだけです。これは、プロキシ モードを使用して特定のビジネス ロジック プロセスを保護する必要があるシナリオで非常によく使用できます。優れた保護には保護されたプロキシ クラスが必要です。
その他の指示
デコレータ パターンと同様に、プロキシ パターンも、拡張にはオープンで、変更にはクローズであるオブジェクト指向の思考の原則をよく体現しています。 プロキシ モードでは、インターフェイスまたは抽象クラスを使用して共通インターフェイスを標準化できます: (JAVA プロキシ モードについては以下で説明します)
1. 抽象クラスの抽象メソッド;
@オーバーライド
public void chuzu() {
System.out.println(room);
}
}
パブリック クラス プロキシはハウスを拡張します {
パブリック プロキシ() {
This.fangdong = new Hangdong();
}
@オーバーライド
public void chuzu() {
This.fandong.chuzu();
System.out.println("レンタル後に仲介手数料をお支払いください");
}
}
//
house.chuzu();
2. インターフェース インターフェースモード:
パブリック クラス Fangdong は House {
を実装します
private String room = “房间名”;
@オーバーライド
public void chuzu() {
System.out.println(room);
}
}
パブリック クラス プロキシはハウスを実装します {
プライベート方東方東;
パブリック プロキシ() {
this.fangdong = new Hangdong();
}
@オーバーライド
public void chuzu() {
this.fandong.chuzu();
System.out.println(“出租後交中介费”);
}
}
//使用
ハウス house = new Proxy();
house.chuzu();