JAVA 靜態(tài)代理模式詳解及實(shí)例應(yīng)用
JAVA 靜態(tài)代理模式
代理模式(Proxy):為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問。
代理模式說白了就是“真實(shí)對(duì)象”的代表,在訪問對(duì)象時(shí)引入一定程度的間接性,因?yàn)檫@種間接性可以附加多種用途。
在這實(shí)現(xiàn)代碼之前,先講一個(gè)簡(jiǎn)單的生活故事,我們都知道我們周邊有很多公司有房屋買賣或租賃的業(yè)務(wù),比如鏈家(LianJia),但鏈家本身是不存在任何實(shí)際房屋資產(chǎn)的,他所售賣租賃的房屋均需要房屋產(chǎn)權(quán)所有人(HomeMaster)提供,才得以實(shí)現(xiàn)公司的房源需求;同時(shí)公司要的賣房租房業(yè)務(wù)均需要公司員工(Seller)來實(shí)現(xiàn),但員工要實(shí)現(xiàn)該方法,必須經(jīng)過公司授權(quán)以及動(dòng)用公司的業(yè)務(wù)資源渠道才可以完成任務(wù)。故事講到這里,我們應(yīng)該清楚這里的Seller其實(shí)就是代理模式中靜態(tài)代理了,那么我們開始該模式的代碼書寫(這里省略了代理實(shí)現(xiàn)方法前后的業(yè)務(wù)邏輯):
interface LianJia{//LianJia提供房屋買賣的渠道方法(公司業(yè)務(wù))
public void sellHouse();
}
class HomeMaster implements LianJia{//房主需要通過鏈家賣房(實(shí)現(xiàn)公司的業(yè)務(wù)渠道)
public void sellHouse(){
System.out.println("我有套房子要賣");
}
}
class Seller implements LianJia{//鏈家的業(yè)務(wù)需要Seller實(shí)現(xiàn)
private LianJia lj;//聲明鏈家公司(可理解為必須證明該seller是鏈家的),方便調(diào)用方法
public Seller(LianJia lj){
this.lj = lj;
}
public void sellHouse(){
lj.sellHouse();//實(shí)際實(shí)現(xiàn)方式需要調(diào)用公司的業(yè)務(wù)渠道方法
}
}
public class ProxyMode{
public static void main(String[] args){
HomeMaster hm = new HomeMaster();
Seller s = new Seller(hm);//代理代房主實(shí)現(xiàn)賣房需求
s.sellHouse();
}
}
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
SpringCloud項(xiàng)目中Feign組件添加請(qǐng)求頭所遇到的坑及解決
這篇文章主要介紹了SpringCloud項(xiàng)目中Feign組件添加請(qǐng)求頭所遇到的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
Java導(dǎo)出Word文檔的實(shí)現(xiàn)方法詳解
這篇文章主要給大家介紹了關(guān)于Java導(dǎo)出Word文檔的實(shí)現(xiàn)方法,在日常的開發(fā)工作中,我們時(shí)常會(huì)遇到導(dǎo)出Word文檔報(bào)表的需求,比如公司的財(cái)務(wù)報(bào)表、醫(yī)院的患者統(tǒng)計(jì)報(bào)表、電商平臺(tái)的銷售報(bào)表等等,需要的朋友可以參考下2023-08-08
springboot 傳參校驗(yàn)@Valid及對(duì)其的異常捕獲方式
這篇文章主要介紹了springboot 傳參校驗(yàn)@Valid及對(duì)其的異常捕獲方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
詳解SpringBoot中的統(tǒng)一結(jié)果返回與統(tǒng)一異常處理
這篇文章主要將通過詳細(xì)的討論和實(shí)例演示來幫助你更好地理解和應(yīng)用Spring Boot中的統(tǒng)一結(jié)果返回和統(tǒng)一異常處理,感興趣的小伙伴可以了解下2024-03-03
Spring項(xiàng)目里將SQL語句寫在.sql文件中的方法
這篇文章主要介紹了Spring項(xiàng)目里如何將SQL語句寫在.sql文件中的方法,文中給出了詳細(xì)的介紹和示例代碼,相信對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,有需要的朋友們下面來一起看看吧。2017-01-01

