亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java設計模式學習之代理模式

發布時間:2020-09-30 13:55:38 來源:腳本之家 閱讀:141 作者:南國木棉 欄目:編程語言

代理模式(Proxy):為其他對象提供一種代理以控制對這個對象的訪問。

代理模式結構圖

java設計模式學習之代理模式

模擬需求:3班小張喜歡1班小紅,但是不認識小紅,委托1班小明送給小紅禮物。

1:創建一個小張和小明都能實現的接口。

package ProxyModel;

/**
 * 總的接口
 * @author 我不是張英俊
 *
 */
interface ISendGift {

  void GiveDolls();
  void GiveFlowers();
  void GiveChocolate();
}

2:實現小張送禮物。

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:實現代理模式需要額外的工作,有些代理模式的實現非常復雜。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

特克斯县| 太湖县| 惠州市| 通州市| 康保县| 璧山县| 霞浦县| 山丹县| 偏关县| 格尔木市| 沁阳市| 米易县| 深州市| 慈溪市| 灌云县| 绥棱县| 伊春市| 昆山市| 桓仁| 定结县| 从化市| 龙口市| 曲沃县| 太仆寺旗| 高邑县| 福海县| 通许县| 乌拉特后旗| 合肥市| 尖扎县| 渑池县| 稷山县| 菏泽市| 楚雄市| 化隆| 鹤岗市| 青神县| 突泉县| 色达县| 岚皋县| 友谊县|