首頁  >  文章  >  Java  >  JAVA 靜態代理模式詳解及實例應用

JAVA 靜態代理模式詳解及實例應用

高洛峰
高洛峰原創
2017-02-07 13:11:261458瀏覽

JAVA 靜態代理模式

代理模式(Proxy):為其他物件提供一個代理程式以控制對這個物件的存取。

代理模式說白了就是「真實物件」的代表,在存取物件時引入一定程度的間接性,因為這種間接性可以附加多種用途。

在這實現代碼之前,先講一個簡單的生活故事,我們都知道我們週邊有很多公司有房屋買賣或租賃的業務,比如鏈家(LianJia),但鍊家本身是不存在任何實際房屋資產的,他所販售租賃的房屋均需要房屋產權所有人(HomeMaster)提供,才得以實現公司的房源需求;同時公司要的賣房租房業務均需要公司員工(Seller)來實現,但員工要實現該方法,必須經過公司授權以及動用公司的業務資源管道才可以完成任務。故事講到這裡,我們應該清楚這裡的Seller其實就是代理模式中靜態代理了,那麼我們開始該模式的程式碼書寫(這裡省略了代理實現方法前後的業務邏輯):

interface LianJia{//LianJia提供房屋买卖的渠道方法(公司业务)
  public void sellHouse();
}
class HomeMaster implements LianJia{//房主需要通过链家卖房(实现公司的业务渠道)
  public void sellHouse(){
    System.out.println("我有套房子要卖");
  }
}
class Seller implements LianJia{//链家的业务需要Seller实现
  private LianJia lj;//声明链家公司(可理解为必须证明该seller是链家的),方便调用方法
  public Seller(LianJia lj){
    this.lj = lj;
  }
  public void sellHouse(){
    lj.sellHouse();//实际实现方式需要调用公司的业务渠道方法
  }
}
public class ProxyMode{
  public static void main(String[] args){
    HomeMaster hm = new HomeMaster();
    Seller s = new Seller(hm);//代理代房主实现卖房需求
    s.sellHouse();
  }
}

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

更多JAVA 靜態代理模式詳解及實例應用相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn