ホームページ > Java > &#&チュートリアル > Java プロキシ モードの学習

Java プロキシ モードの学習

黄舟
リリース: 2017-10-13 10:31:53
オリジナル
1008 人が閲覧しました

この記事では、主に Java デザインパターン学習におけるプロキシ モードの関連情報を詳しく紹介します。興味のある方は参考にしてください。

プロキシ モード (プロキシ): 他のオブジェクトのプロキシがアクセスを制御する方法を提供します。このオブジェクトに。

機関モデル構造図

シミュレーション要件: 3 組のシャオ チャンは 1 組のシャオ ホンが好きですが、シャオ ホンのことを知らないため、1 組のシャオ ミンにシャオ ホンへのプレゼントを託します。

1: Xiao Zhang と Xiao Ming の両方が実装できるインターフェースを作成します。


package ProxyModel;

/**
 * 总的接口
 * @author 我不是张英俊
 *
 */
interface ISendGift {

  void GiveDolls();
  void GiveFlowers();
  void GiveChocolate();
}
ログイン後にコピー

2: Xiao Zhang にギフトを送ることを許可します。


package ProxyModel;

/**
 * 
 * 小张是送鲜花的本体,送其实是小张送的,小明只是借助小张的送的鲜花去给小红
 * @author 我不是张英俊
 *
 */
public class Pursuit implements ISendGift{

  String mm;
  public Pursuit(String mm){
    this.mm=mm;
  }
  @Override
  public void GiveDolls() {
    // TODO Auto-generated method stub
    System.out.println("送"+mm+"洋娃娃");
  }

  @Override
  public void GiveFlowers() {
    // TODO Auto-generated method stub
    System.out.println("送"+mm+"鲜花");
  }

  @Override
  public void GiveChocolate() {
    // TODO Auto-generated method stub
    System.out.println("送"+mm+"巧克力");
  }

}
ログイン後にコピー

3: シャオ・チャンを通じてシャオ・ミンが送ったプレゼントを受け取り、シャオ・ホンに転送します。


package ProxyModel;

/**
 * 小明转送小红礼物的完成方法,其实是借助小张送的礼物来完成的,此处小明即为代理
 * @author 我不是张英俊
 *
 */
public class Proxy implements ISendGift{

  Pursuit gg;
  public Proxy(String mm){
    gg=new Pursuit(mm);
  }
  
  @Override
  public void GiveDolls() {
    // TODO Auto-generated method stub
    gg.GiveDolls();
  }

  @Override
  public void GiveFlowers() {
    // TODO Auto-generated method stub
    gg.GiveFlowers();
  }

  @Override
  public void GiveChocolate() {
    // TODO Auto-generated method stub
    gg.GiveChocolate();
  }

}
ログイン後にコピー

4: テストカテゴリ:


package ProxyModel;

/**
 * 需求,3班小张喜欢1班小红,但是不认识小红,委托1班小明给小红送东西
 * 总结:小张送小红礼物,小张送,然后小明通过小张接过送的礼物,给小红,
 * 其实小明是借助小张送的礼物,来代理完成送礼物的操作。
 * 代理模式
 * @author 我不是张英俊
 *
 */
public class test {

  public static void main(String[] args) {
    String mm="小红";
    Proxy xiaoming=new Proxy(mm);
    xiaoming.GiveDolls();
    xiaoming.GiveFlowers();
    xiaoming.GiveChocolate();

  }

}
ログイン後にコピー

5: コンソール

小さな赤い人形を送る
小さな赤い花を送る
小さな赤いチョコレートを送る

概要:

プロキシモードに適用可能なシナリオ

1: リモート プロキシ。異なるアドレス空間でオブジェクトのローカル表現を提供します。これにより、オブジェクトが別のアドレス空間に存在するという事実が隠蔽されます。

2: 仮想エージェントは、必要に応じて作成すると高価なオブジェクトです。インスタンス化に時間がかかる実際のオブジェクトを保存するために使用します。

3: セキュリティ プロキシ。実際のオブジェクトにアクセスするときに権限を制御するために使用されます。

4: インテリジェントなガイダンスとは、実際のオブジェクトが呼び出されたときに、エージェントが他の処理を行うことを意味します。

利点:

1: プロキシ モードは呼び出し元と呼び出し先を調整し、システムの結合をある程度まで減らすことができます。

2: プロキシ オブジェクトはクライアントとターゲット オブジェクトの間の仲介的な役割を果たすことができます。対象物を保護する役割を果たします。

欠点:

1: クライアントと実際のオブジェクトの間にプロキシ オブジェクトが追加されるため、一部の種類のプロキシ パターンではリクエストの処理速度が遅くなる可能性があります。

2: プロキシ パターンの実装には追加のものが必要です。一部のプロキシ パターンは実装が非常に複雑です。

以上がJava プロキシ モードの学習の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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