歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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();
    }
}

Copyright © Linux教程網 All Rights Reserved