ホームページ >Java >&#&チュートリアル >Java デザイン パターンでプロキシ パターンを実装する方法
プロキシ モードの定義: 何らかの理由で、オブジェクトへのアクセスを制御するには、オブジェクトにプロキシを提供する必要があります。このとき、アクセスオブジェクトはターゲットオブジェクトを直接参照できない、または適切ではないため、プロキシオブジェクトがアクセスオブジェクトとターゲットオブジェクトの間の仲介者として機能します。
1. プロキシ モードはクライアントとターゲット オブジェクトの間の仲介的な役割を果たし、ターゲット オブジェクトを保護します;
2. プロキシ オブジェクトはターゲットを拡張できます。オブジェクトの機能;
3. プロキシ モードはクライアントをターゲット オブジェクトから分離できるため、システムの結合がある程度軽減され、プログラムのスケーラビリティが向上します
1. プロキシ モードによりシステム設計のクラス数が増加します
#2. クライアントとターゲット オブジェクトの間にプロキシ オブジェクトを追加すると、リクエストの処理速度が遅くなります;3. システムの複雑さが増す; 知識ポイントエージェント モードの構造は、主に抽象トピックを継承するエージェントを定義することによって比較的単純です。実際のトピックを含めることで、実際のトピックにアクセスするために、その基本構造と実装方法を分析しましょう。 エージェンシー モデルの実装ケース: Da Ben Dai Ganniang がワインを販売している抽象件名 (Subject) クラス: ワインの販売Real Subject ) カテゴリ: ゴッドマザーの居酒屋代理カテゴリ: ダ・ベンのワイン屋台ダ・ベンは、代理としてゴッドマザーの居酒屋の前に屋台を出し、ワインを売りに来ました。 ワインの販売ワイン販売インターフェイスは、ワインを販売するための抽象メソッドを宣言しますpublic interface Jiu { void show(); }Godmother's tavernGodmother's tavern クラスの実装販売用のインターフェイスを開発しましたwine、show() ワイン販売メソッドを実装し、ワイン名を宣言し、Da Ben に屋台のセットアップを促す aa() メソッドを実装しました。
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("大奔来摆摊了"); } }Da Ben のワイン屋台Daben's wineストールクラスはワイン販売インターフェースを実装し、ワインの名前と甘娘酒場の属性を宣言し、ワイン販売メソッドを実装します。
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(); } }Testnew 大規模なワインの屋台で、show() メソッドを 2 回呼び出すことは、ワインを 2 回販売するのと同じです。
public class Demo { public static void main(String[] args) { DaBen daBen = new DaBen("女儿红"); daBen.show(); System.out.println(); System.out.println(); daBen.show(); } }ここで、ワインを初めて販売するときとワインを 2 回目に販売するときの出力結果が異なることがわかります。これは、ワインを販売するたびに、ゴッドマザーの酒場に行ってそれを手に入れてください。ダ・ベンが初めてワインを取りに来たとき、私が屋台の準備に来たことをゴッドマザーに伝えました。その後、ゴッドマザーはダ・ベンが来ることをすでに知っていたので、ワインが来たときに知らせる必要はありませんでした。またワイン。
以上がJava デザイン パターンでプロキシ パターンを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。