JAVA 靜態(tài)代理模式詳解及實(shí)例應(yīng)用
JAVA 靜態(tài)代理模式
代理模式(Proxy):為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問(wèn)。
代理模式說(shuō)白了就是“真實(shí)對(duì)象”的代表,在訪問(wèn)對(duì)象時(shí)引入一定程度的間接性,因?yàn)檫@種間接性可以附加多種用途。
在這實(shí)現(xiàn)代碼之前,先講一個(gè)簡(jiǎn)單的生活故事,我們都知道我們周邊有很多公司有房屋買(mǎi)賣(mài)或租賃的業(yè)務(wù),比如鏈家(LianJia),但鏈家本身是不存在任何實(shí)際房屋資產(chǎn)的,他所售賣(mài)租賃的房屋均需要房屋產(chǎn)權(quán)所有人(HomeMaster)提供,才得以實(shí)現(xiàn)公司的房源需求;同時(shí)公司要的賣(mài)房租房業(yè)務(wù)均需要公司員工(Seller)來(lái)實(shí)現(xiàn),但員工要實(shí)現(xiàn)該方法,必須經(jīng)過(guò)公司授權(quán)以及動(dòng)用公司的業(yè)務(wù)資源渠道才可以完成任務(wù)。故事講到這里,我們應(yīng)該清楚這里的Seller其實(shí)就是代理模式中靜態(tài)代理了,那么我們開(kāi)始該模式的代碼書(shū)寫(xiě)(這里省略了代理實(shí)現(xiàn)方法前后的業(yè)務(wù)邏輯):
interface LianJia{//LianJia提供房屋買(mǎi)賣(mài)的渠道方法(公司業(yè)務(wù)) public void sellHouse(); } class HomeMaster implements LianJia{//房主需要通過(guò)鏈家賣(mài)房(實(shí)現(xiàn)公司的業(yè)務(wù)渠道) public void sellHouse(){ System.out.println("我有套房子要賣(mài)"); } } 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)賣(mài)房需求 s.sellHouse(); } }
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
Java編程實(shí)現(xiàn)遍歷兩個(gè)MAC地址之間所有MAC的方法
這篇文章主要介紹了Java編程實(shí)現(xiàn)遍歷兩個(gè)MAC地址之間所有MAC的方法,涉及Java針對(duì)MAC的遍歷獲取與字符串轉(zhuǎn)換相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11Servlet關(guān)于RequestDispatcher的原理詳解
這篇文章主要介紹了Servlet關(guān)于RequestDispatcher的原理詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-11-11Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)之二手書(shū)商城系統(tǒng)的實(shí)現(xiàn)
這是一個(gè)使用了java+JSP+Springboot+maven+mysql+ThymeLeaf+FTP開(kāi)發(fā)的二手書(shū)商城系統(tǒng),是一個(gè)畢業(yè)設(shè)計(jì)的實(shí)戰(zhàn)練習(xí),具有在線(xiàn)書(shū)城該有的所有功能,感興趣的朋友快來(lái)看看吧2022-01-01Java實(shí)現(xiàn)獲取某年某月第一天/最后一天的方法
這篇文章主要介紹了Java實(shí)現(xiàn)獲取某年某月第一天/最后一天的方法,涉及java日期運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2018-02-02Java設(shè)計(jì)模式以虹貓藍(lán)兔的故事講解適配器模式
適配器模式(Adapter?Pattern)是作為兩個(gè)不兼容的接口之間的橋梁。這種類(lèi)型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式,它結(jié)合了兩個(gè)獨(dú)立接口的功能2022-04-04Java14對(duì)于NullPointerException的新處理方式示例解析
這篇文章主要為大家介紹了Java14對(duì)于NullPointerException的新處理方式示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09Mybatis批量修改聯(lián)合主鍵數(shù)據(jù)的兩種方法
最近遇上需要批量修改有聯(lián)合主鍵的表數(shù)據(jù),找很多資料都不是太合適,最終自己摸索總結(jié)了兩種方式可以批量修改數(shù)據(jù),對(duì)Mybatis批量修改數(shù)據(jù)相關(guān)知識(shí)感興趣的朋友一起看看吧2022-04-04