欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學(xué)堂教你如何實(shí)現(xiàn)Java的代理模式

2018-02-06 15:06:17 1173瀏覽

關(guān)于Java的代理模式不知道有多少的人了解,其實(shí)不論是參加Java培訓(xùn)還是自學(xué)Java,Java的代理模式都是Java學(xué)習(xí)中一個(gè)很重要的學(xué)習(xí)部分,本篇文章扣丁學(xué)堂小編就帶讀者們來(lái)看一下如何實(shí)現(xiàn)Java的代理模式。


扣丁學(xué)堂教你如何實(shí)現(xiàn)Java的代理模式


代理模式的一種常見(jiàn)的實(shí)現(xiàn)方案是定義一個(gè)接口或抽象類,并派生出目標(biāo)子類,和代理子類。我們要操作的是目標(biāo)子類里的方法,而很多時(shí)候,我們需要為目錄子類中的方法增加額外的處理,如果增加日志功能、條件判斷等,這時(shí)候,就很有必要用到代理類。



/**

* 代理子類和目標(biāo)子類的公共接口

* @author rongxinhua

*

*/

public interface MyInterface {

public void doOperation();

}

/**

* 目標(biāo)子類

* @author rongxinhua

*

*/

public class RealClass implements MyInterface {

/**

* 我們要執(zhí)行的目標(biāo)方法

*/

@Override

public void doOperation() {

System.out.println("doOperation


");

}

}

而在沒(méi)有使用代理模式的情況下,我們是這樣執(zhí)行目標(biāo)方法的:

RealClass realObj = new RealClass();

realObj.doOperation(); //調(diào)用目標(biāo)方法

打印時(shí)輸出:

doOperation...

而我們要加入額外的處理的話,就可以使用代理類了:

/**

* 代理子類

* @author rongxinhua

*

*/

public class ProxyClass implements MyInterface {

private MyInterface realObj; //目標(biāo)子類對(duì)象

public ProxyClass(MyInterface realObj) {

this.realObj = realObj;

}

/**

* 調(diào)用目標(biāo)子類的方法,并在其中加入了前置處理和后置處理

*/

@Override

public void doOperation() {

doBefore();

realObj.doOperation();

doAfter();

}

/**

* 目標(biāo)方法調(diào)用前的相關(guān)處理

*/

private void doBefore() {

System.out.println("doBefore

");

}

/**

* 目標(biāo)方法調(diào)用后的相關(guān)處理

*/

private void doAfter() {

System.out.println("doAfter

");

}

}

有了代理類,我們可以這樣執(zhí)行目標(biāo)方法:

ProxyClass proxyObj = new ProxyClass(new RealClass());

proxyObj.doOperation(); //通過(guò)代理對(duì)象調(diào)用doOperation方法

打印時(shí)輸出:

doBefore...

doOperation...

doAfter...



關(guān)于Java的代理模式扣丁學(xué)堂小編就為大家簡(jiǎn)單說(shuō)以上這些,想要了解更多內(nèi)容的小伙伴可以登錄扣丁學(xué)堂官網(wǎng)查看??鄱W(xué)堂Java培訓(xùn)機(jī)構(gòu)不僅有專業(yè)的老師和與時(shí)俱進(jìn)的課程體系,還有大量的Java視頻教程供學(xué)員觀看學(xué)習(xí),想要了解學(xué)習(xí)Java的小伙伴快快行動(dòng)吧。Java技術(shù)交流群:670348138。


關(guān)注微信公眾號(hào)獲取更多學(xué)習(xí)資料

關(guān)注微信公眾號(hào)獲取更多學(xué)習(xí)資料



查看更多關(guān)于“Java開(kāi)發(fā)資訊的相關(guān)文章>>

標(biāo)簽: 扣丁學(xué)堂教你如何實(shí)現(xiàn)Java的代理模式 Java培訓(xùn) Java視頻教程

熱門專區(qū)

暫無(wú)熱門資訊

課程推薦

微信
微博
15311698296

全國(guó)免費(fèi)咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號(hào)中關(guān)村智誠(chéng)科創(chuàng)大廈4層
京ICP備2021002079號(hào)-2   Copyright ? 2017 - 2022
返回頂部 返回頂部