プロキシ モードの定義: 何らかの理由で、オブジェクトへのアクセスを制御するには、オブジェクトにプロキシを提供する必要があります。このとき、アクセスオブジェクトはターゲットオブジェクトを直接参照できない、または適切ではないため、プロキシオブジェクトがアクセスオブジェクトとターゲットオブジェクトの間の仲介者として機能します。
1. プロキシ モードはクライアントとターゲット オブジェクトの間の仲介的な役割を果たし、ターゲット オブジェクトを保護します;
2. プロキシ オブジェクトはターゲットを拡張できます。オブジェクトの機能;
3. プロキシ モードはクライアントをターゲット オブジェクトから分離できるため、システムの結合がある程度軽減され、プログラムのスケーラビリティが向上します
1. プロキシ モードによりシステム設計のクラス数が増加します
#2. クライアントとターゲット オブジェクトの間にプロキシ オブジェクトを追加すると、リクエストの処理速度が遅くなります;3. システムの複雑さが増す; 知識ポイントエージェント モードの構造は、主に抽象トピックを継承するエージェントを定義することによって比較的単純です。実際のトピックを含めることで、実際のトピックにアクセスするために、その基本構造と実装方法を分析しましょう。 エージェンシー モデルの実装ケース: Da Ben Dai Ganniang がワインを販売している抽象件名 (Subject) クラス: ワインの販売Real Subject ) カテゴリ: ゴッドマザーの居酒屋代理カテゴリ: ダ・ベンのワイン屋台ダ・ベンは、代理としてゴッドマザーの居酒屋の前に屋台を出し、ワインを売りに来ました。 ワインの販売ワイン販売インターフェイスは、ワインを販売するための抽象メソッドを宣言しますpublic interface Jiu { void show(); }
public class GanNiang implements Jiu { private String name; GanNiang() { } GanNiang(String name) { this.name = name; aa(); } @Override public void show() { System.out.printf("卖出一坛%s", name); } public void aa() { System.out.println("大奔来摆摊了"); } }
public class DaBen implements Jiu { private String name; private GanNiang ganNiang; DaBen() { } DaBen(String name) { this.name = name; } @Override public void show() { if (ganNiang == null) { ganNiang = new GanNiang(name); } ganNiang.show(); } }
public class Demo { public static void main(String[] args) { DaBen daBen = new DaBen("女儿红"); daBen.show(); System.out.println(); System.out.println(); daBen.show(); } }
以上がJava デザイン パターンでプロキシ パターンを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。