プロキシパターン
4519 ワード
別のオブジェクトの代用代入先またはプレースホルダにアクセスを制御します.
Proxy :プロキシを実際のサブジェクトにアクセスさせるリファレンスを保持します.Providerは、対象とするインターフェイスが同じである場合、対象を参照することができます.インターフェイスは、実質的な件名の代わりに、プロキシを置き換えることができます本物の件名を提供します.本当の主題へのアクセスをコントロールして、それを作成して、削除することに責任があるかもしれません.他の責任はプロキシの種類に依存します:
リモートプロキシは、要求とその引数をエンコードし、別のアドレス空間で実際のサブジェクトにエンコードされたリクエストを送信する責任があります.
仮想プロキシは、それらがアクセスするのを延期することができるように、本当の主題に関する追加情報をキャッシュするかもしれません.例えば、
動機からのimageproxyは本当のイメージの範囲をキャッシュします.
保護プロキシは、呼び出し元が要求を実行するために必要なアクセス許可を持っていることを確認します. subject :利用者がどこにでも使用できるように、realsubjectとproxyの共通インターフェースを定義します. realsubject :プロキシが表す実オブジェクトを定義します. コード
参加者
リモートプロキシは、要求とその引数をエンコードし、別のアドレス空間で実際のサブジェクトにエンコードされたリクエストを送信する責任があります.
仮想プロキシは、それらがアクセスするのを延期することができるように、本当の主題に関する追加情報をキャッシュするかもしれません.例えば、
動機からのimageproxyは本当のイメージの範囲をキャッシュします.
保護プロキシは、呼び出し元が要求を実行するために必要なアクセス許可を持っていることを確認します.
コード
public class Main {
public static void main(String[] args) {
Proxy proxy = new Proxy();
proxy.request();
}
}
public interface Subject {
void request();
}
public class RealSubject implements Subject {
@Override
public void request() {
System.out.println("Called RealSubject.Request()");
}
}
public class Proxy implements Subject {
private RealSubject realSubject;
@Override
public void request() {
if (realSubject == null) {
realSubject = new RealSubject();
}
realSubject.request();
}
}
出力
Called RealSubject.Request()
エディエルジュリアン61
/
デザインパターン
メインデザインパターン
アイドル・ Sep 27・ 1分読む
#designpatterns
#creational
#structural
#behavioral
Reference
この問題について(プロキシパターン), 我々は、より多くの情報をここで見つけました
https://dev.to/eidher/proxy-pattern-1aj1
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
public class Main {
public static void main(String[] args) {
Proxy proxy = new Proxy();
proxy.request();
}
}
public interface Subject {
void request();
}
public class RealSubject implements Subject {
@Override
public void request() {
System.out.println("Called RealSubject.Request()");
}
}
public class Proxy implements Subject {
private RealSubject realSubject;
@Override
public void request() {
if (realSubject == null) {
realSubject = new RealSubject();
}
realSubject.request();
}
}
Called RealSubject.Request()
エディエルジュリアン61 / デザインパターン
メインデザインパターン
アイドル・ Sep 27・ 1分読む
#designpatterns
#creational
#structural
#behavioral
Reference
この問題について(プロキシパターン), 我々は、より多くの情報をここで見つけました https://dev.to/eidher/proxy-pattern-1aj1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol