国产精品主播一区二区-国产一级不卡毛片-日本少妇中出-国产视频第二页-青草精品视频-亚洲熟妇丰满多毛xxxx-日韩福利在线-成年人免费观看在线视频-久久久www-91在线视频观看无毒不卡-999国产精品-91久久爽久久爽爽久久片-和搜子居同的日子2hd高清看-鬼眼 电影-中文在线精品-综合网久久-国产精品美女久久久久久

代理模式是什么?代理模式的優(yōu)缺點(diǎn)有哪些?

您可能對(duì)代理有一定的了解,但您不一定了解代理模式。 代理模式是一種設(shè)計(jì)模式,提供對(duì)目標(biāo)對(duì)象的額外訪問(wèn)。 例如,銷售代理充當(dāng)火車站對(duì)象的代理,并提供購(gòu)票方式。 那么代理模式有多少種呢? 代理模式的優(yōu)缺點(diǎn)是什么? 結(jié)合IP模擬器代理了解一些代理模式的基礎(chǔ)知識(shí)。  
 
 
代理方式有幾種
 
1.動(dòng)態(tài)代理
 
是在jvm運(yùn)行時(shí)通過(guò)反射動(dòng)態(tài)創(chuàng)建對(duì)象 ,生成字節(jié)碼對(duì)象(構(gòu)造方法參數(shù)InvocationHandler h類型),傳入我們實(shí)現(xiàn)InvocationHandler接口的對(duì)象,通過(guò)反射創(chuàng)建代理對(duì)象。 那么當(dāng)代理對(duì)象的任何方法被調(diào)用時(shí),都會(huì)調(diào)用h中的invoke(Object proxy, Method method, Object[] args),傳入當(dāng)前代理對(duì)象、當(dāng)前調(diào)用的方法、方法參數(shù)值。  
 
2.靜態(tài)代理 
 
代理類由程序員創(chuàng)建,然后編譯成 .class 文件。 但缺點(diǎn)是代碼重復(fù),不靈活。 比如在接口A中的所有方法執(zhí)行前添加日志邏輯。如果使用靜態(tài)代理,則必須添加代理類中的每個(gè)方法。 如果我想在開頭的方法中添加*添加一個(gè)邏輯,在select*開頭的方法中添加另一個(gè)邏輯。 那么就很難實(shí)現(xiàn)和維護(hù)。 如果要解決上面的困惑,就必須使用動(dòng)態(tài)代理。  
 
代理模型的優(yōu)缺點(diǎn) 
 
1.單個(gè)目標(biāo)對(duì)象 
 
 靜態(tài)代理實(shí)現(xiàn)比較簡(jiǎn)單,只要代理對(duì)象包裹了目標(biāo)對(duì)象 ,可以實(shí)現(xiàn)增強(qiáng)功能,但靜態(tài)代理只能服務(wù)一個(gè)目標(biāo)對(duì)象。 如果目標(biāo)對(duì)象太多,就會(huì)產(chǎn)生很多代理類。  
 
2.實(shí)現(xiàn)多個(gè)類 
 
 靜態(tài)代理通常只代理一個(gè)類,動(dòng)態(tài)代理是在一個(gè)接口下代理多個(gè)實(shí)現(xiàn)類。  
 
3.系統(tǒng)性能消耗
 
 動(dòng)態(tài)代理必須實(shí)現(xiàn)InvocationHandler接口。 通過(guò)反射代理的方式,消耗了系統(tǒng)性能,但是可以減少代理類的數(shù)量,使用起來(lái)更加靈活。  CGLIB實(shí)現(xiàn)動(dòng)態(tài)代理,不需要代理類必須實(shí)現(xiàn)接口。  
 
4.class文件 

編譯時(shí)已經(jīng)實(shí)現(xiàn)了靜態(tài)代理,代理類是編譯后的實(shí)際類文件。 動(dòng)態(tài)代理是在運(yùn)行時(shí)動(dòng)態(tài)生成的,即編譯完成后沒(méi)有實(shí)際的類文件,而是在運(yùn)行時(shí)動(dòng)態(tài)生成類字節(jié)碼并加載到JVM中。  
 
代理模式有哪些? 代理模式的優(yōu)缺點(diǎn)是什么? 通過(guò)以上的了解,相信大家已經(jīng)有了一定的了解。 在某些情況下,一個(gè)對(duì)象不合適或不能直接引用另一個(gè)對(duì)象,代理對(duì)象可以在客戶端和目標(biāo)對(duì)象之間起到中介作用。 
云安县| 吉木萨尔县| 武山县| 邹平县| 都兰县| 宽城| 镇平县| 遵化市| 梁山县| 紫阳县| 讷河市| 东乌珠穆沁旗| 三都| 石楼县| 思南县| 图木舒克市| 东城区| 龙岩市| 德保县| 新密市| 来安县| 渑池县| 灵山县| 淮滨县| 安丘市| 辉县市| 威远县| 卢湾区| 遵化市| 祁连县| 阿瓦提县| 天峻县| 红安县| 衡东县| 泸定县| 郑州市| 浮梁县| 芜湖县| 镇江市| 太康县| 内江市|