Java デザイン パターンでプロキシ パターンを実装する方法

王林
リリース: 2023-05-13 18:34:06
転載
915 人が閲覧しました

プロキシ モードとは

プロキシ モードの定義: 何らかの理由で、オブジェクトへのアクセスを制御するには、オブジェクトにプロキシを提供する必要があります。このとき、アクセスオブジェクトはターゲットオブジェクトを直接参照できない、または適切ではないため、プロキシオブジェクトがアクセスオブジェクトとターゲットオブジェクトの間の仲介者として機能します。

利点

1. プロキシ モードはクライアントとターゲット オブジェクトの間の仲介的な役割を果たし、ターゲット オブジェクトを保護します;

2. プロキシ オブジェクトはターゲットを拡張できます。オブジェクトの機能;

3. プロキシ モードはクライアントをターゲット オブジェクトから分離できるため、システムの結合がある程度軽減され、プログラムのスケーラビリティが向上します

欠点

1. プロキシ モードによりシステム設計のクラス数が増加します

#2. クライアントとターゲット オブジェクトの間にプロキシ オブジェクトを追加すると、リクエストの処理速度が遅くなります;

3. システムの複雑さが増す;

知識ポイント

エージェント モードの構造は、主に抽象トピックを継承するエージェントを定義することによって比較的単純です。実際のトピックを含めることで、実際のトピックにアクセスするために、その基本構造と実装方法を分析しましょう。

エージェンシー モデルの実装

ケース: Da Ben Dai Ganniang がワインを販売している

抽象件名 (Subject) クラス: ワインの販売

Real Subject ) カテゴリ: ゴッドマザーの居酒屋

代理カテゴリ: ダ・ベンのワイン屋台

ダ・ベンは、代理​​としてゴッドマザーの居酒屋の前に屋台を出し、ワインを売りに来ました。

ワインの販売

ワイン販売インターフェイスは、ワインを販売するための抽象メソッドを宣言します

public interface Jiu {
    void show();
}
ログイン後にコピー

Godmother's tavern

Godmother'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();
    }
}
ログイン後にコピー

Test

new 大規模なワインの屋台で、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();
    }
}
ログイン後にコピー

Java デザイン パターンでプロキシ パターンを実装する方法

ここで、ワインを初めて販売するときとワインを 2 回目に販売するときの出力結果が異なることがわかります。これは、ワインを販売するたびに、ゴッドマザーの酒場に行ってそれを手に入れてください。ダ・ベンが初めてワインを取りに来たとき、私が屋台の準備に来たことをゴッドマザーに伝えました。その後、ゴッドマザーはダ・ベンが来ることをすでに知っていたので、ワインが来たときに知らせる必要はありませんでした。またワイン。

以上がJava デザイン パターンでプロキシ パターンを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート