JAVA 靜態(tài)代理模式詳解及實例應用
JAVA 靜態(tài)代理模式
代理模式(Proxy):為其他對象提供一種代理以控制對這個對象的訪問。
代理模式說白了就是“真實對象”的代表,在訪問對象時引入一定程度的間接性,因為這種間接性可以附加多種用途。
在這實現(xiàn)代碼之前,先講一個簡單的生活故事,我們都知道我們周邊有很多公司有房屋買賣或租賃的業(yè)務,比如鏈家(LianJia),但鏈家本身是不存在任何實際房屋資產的,他所售賣租賃的房屋均需要房屋產權所有人(HomeMaster)提供,才得以實現(xiàn)公司的房源需求;同時公司要的賣房租房業(yè)務均需要公司員工(Seller)來實現(xiàn),但員工要實現(xiàn)該方法,必須經(jīng)過公司授權以及動用公司的業(yè)務資源渠道才可以完成任務。故事講到這里,我們應該清楚這里的Seller其實就是代理模式中靜態(tài)代理了,那么我們開始該模式的代碼書寫(這里省略了代理實現(xiàn)方法前后的業(yè)務邏輯):
interface LianJia{//LianJia提供房屋買賣的渠道方法(公司業(yè)務)
public void sellHouse();
}
class HomeMaster implements LianJia{//房主需要通過鏈家賣房(實現(xiàn)公司的業(yè)務渠道)
public void sellHouse(){
System.out.println("我有套房子要賣");
}
}
class Seller implements LianJia{//鏈家的業(yè)務需要Seller實現(xiàn)
private LianJia lj;//聲明鏈家公司(可理解為必須證明該seller是鏈家的),方便調用方法
public Seller(LianJia lj){
this.lj = lj;
}
public void sellHouse(){
lj.sellHouse();//實際實現(xiàn)方式需要調用公司的業(yè)務渠道方法
}
}
public class ProxyMode{
public static void main(String[] args){
HomeMaster hm = new HomeMaster();
Seller s = new Seller(hm);//代理代房主實現(xiàn)賣房需求
s.sellHouse();
}
}
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
Java編程實現(xiàn)遍歷兩個MAC地址之間所有MAC的方法
這篇文章主要介紹了Java編程實現(xiàn)遍歷兩個MAC地址之間所有MAC的方法,涉及Java針對MAC的遍歷獲取與字符串轉換相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-11-11
Servlet關于RequestDispatcher的原理詳解
這篇文章主要介紹了Servlet關于RequestDispatcher的原理詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11
Java畢業(yè)設計實戰(zhàn)之二手書商城系統(tǒng)的實現(xiàn)
這是一個使用了java+JSP+Springboot+maven+mysql+ThymeLeaf+FTP開發(fā)的二手書商城系統(tǒng),是一個畢業(yè)設計的實戰(zhàn)練習,具有在線書城該有的所有功能,感興趣的朋友快來看看吧2022-01-01
Java14對于NullPointerException的新處理方式示例解析
這篇文章主要為大家介紹了Java14對于NullPointerException的新處理方式示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09
Mybatis批量修改聯(lián)合主鍵數(shù)據(jù)的兩種方法
最近遇上需要批量修改有聯(lián)合主鍵的表數(shù)據(jù),找很多資料都不是太合適,最終自己摸索總結了兩種方式可以批量修改數(shù)據(jù),對Mybatis批量修改數(shù)據(jù)相關知識感興趣的朋友一起看看吧2022-04-04

