中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

百度云 做網(wǎng)站/濟(jì)南百度推廣開戶

百度云 做網(wǎng)站,濟(jì)南百度推廣開戶,安徽網(wǎng)站建設(shè)哪家好,公司網(wǎng)站建設(shè)的視頻代理可以進(jìn)一步劃分為靜態(tài)代理和動(dòng)態(tài)代理,代理模式在實(shí)際的生活中場景很多,例如中介、律師、代購等行業(yè),都是簡單的代理邏輯,在這個(gè)模式下存在兩個(gè)關(guān)鍵角色: 目標(biāo)對(duì)象角色:即代理對(duì)象所代表的對(duì)象。 代理…

代理可以進(jìn)一步劃分為靜態(tài)代理和動(dòng)態(tài)代理,代理模式在實(shí)際的生活中場景很多,例如中介、律師、代購等行業(yè),都是簡單的代理邏輯,在這個(gè)模式下存在兩個(gè)關(guān)鍵角色:

目標(biāo)對(duì)象角色:即代理對(duì)象所代表的對(duì)象。

代理對(duì)象角色:內(nèi)部含有目標(biāo)對(duì)象的引用,可以操作目標(biāo)對(duì)象

一、靜態(tài)代理

目標(biāo)對(duì)象角色

public class Target {public void execute(){System.out.println("Target execute...");}
}

代理對(duì)象角色

public class ProxyObj {private Target target;public  ProxyObj(Target target){this.target=target;}public void invoke(){before();target.execute();after();}public void before(){System.out.println("before...");}public void after(){System.out.println("after...");}
}
public class Proxy {public static void main(String[] args) {Target target = new Target();ProxyObj proxy = new ProxyObj(target);proxy.invoke();}
}

代理模式的本質(zhì)是在目標(biāo)對(duì)象的方法前后置入增強(qiáng)操作

二、動(dòng)態(tài)代理

首先看兩個(gè)核心類,這里簡述下概念,看完基本過程再細(xì)聊:

  • Proxy-創(chuàng)建代理對(duì)象,核心參數(shù):

    • ClassLoader:(目標(biāo)類)加載器;
    • Interfaces:(目標(biāo)類)接口數(shù)組;
    • InvocationHandler:代理調(diào)用機(jī)制;
  • InvocationHandler-代理類調(diào)用機(jī)制:

    • invoke:這個(gè)上篇說的反射原理;
    • method:反射類庫中的核心API;

目標(biāo)對(duì)象和接口

interface IUser {Integer update (String name) ;
}
class UserService implements IUser {@Overridepublic Integer update(String name) {Integer userId = 99 ;System.out.println("UserId="+userId+";updateName="+name);return userId ;}
}

代理對(duì)象執(zhí)行機(jī)制

class UserHandler implements InvocationHandler {private Object target ;public UserHandler (Object target){this.target = target ;}@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {System.out.println("before()...");Object result = method.invoke(target, args);System.out.println("after()...");return result;}
}

具體使用:

public class Proxy02 {public static void main(String[] args) {/** 生成$Proxy0的class文件*/System.getProperties().put("sun.misc.ProxyGenerator.saveGeneratedFiles", "true");/** 目標(biāo)對(duì)象信息*/IUser userService = new UserService();ClassLoader classLoader = userService.getClass().getClassLoader();Class<?>[] interfaces = UserService.class.getInterfaces() ;/** 創(chuàng)建代理對(duì)象*/InvocationHandler userHandler = new UserHandler(userService);/** 代理類對(duì)象名* proxyClassName=com.java.proxy.$Proxy0*/String proxyClassName = Proxy.newProxyInstance(classLoader,interfaces,userHandler).getClass().getName();System.out.println("proxyClassName="+proxyClassName);/** 具體業(yè)務(wù)實(shí)現(xiàn)模擬*/IUser proxyUser1 = (IUser) Proxy.newProxyInstance(classLoader,interfaces,userHandler);IUser proxyUser2 = (IUser) Proxy.newProxyInstance(classLoader,interfaces,userHandler);proxyUser1.update("cicada") ;proxyUser2.update("smile") ;}
}

?

JDK源碼

IUser proxyUser = (IUser) Proxy.newProxyInstance(classLoader,interfaces,userHandler);

Proxy提供的靜態(tài)方法newProxyInstance(),通過各個(gè)參數(shù)的傳入,構(gòu)建一個(gè)新的代理Class對(duì)象,即$Proxy0類的結(jié)構(gòu)信息,這里再回首看下三個(gè)核心參數(shù):

  • ClassLoader:基于JVM運(yùn)行過程,所以需要獲取目標(biāo)類UserService的類加載器;

  • Interfaces:目標(biāo)類UserService實(shí)現(xiàn)的接口,從面向?qū)ο髞砜紤],接口與實(shí)現(xiàn)分離,代理類通過實(shí)現(xiàn)IUser接口,模擬目標(biāo)類的需求;

  • InvocationHandler:代理類提供的功能封裝即UserHandler,可以在目標(biāo)方法調(diào)用前后做增強(qiáng)處理

http://www.risenshineclean.com/news/119.html

相關(guān)文章:

  • wordpress仿站網(wǎng)/茶葉推廣軟文
  • dede靜態(tài)網(wǎng)站模板下載/廣告推廣策劃
  • 網(wǎng)站前面的logo標(biāo)志/網(wǎng)絡(luò)營銷品牌推廣公司
  • 滁州做網(wǎng)站電話號(hào)碼/seo推廣服務(wù)哪家好
  • 石家莊網(wǎng)絡(luò)公司排名/南昌seo公司
  • 免費(fèi)的行情軟件網(wǎng)站在線使用/企業(yè)網(wǎng)站建設(shè)多少錢
  • 山東省建設(shè)工程注冊中心網(wǎng)站/114黃頁
  • 手機(jī)網(wǎng)站后臺(tái)/seo是什么?
  • 做黨和人民滿意的好教師PPT網(wǎng)站/百度瀏覽器廣告怎么投放
  • 中國百強(qiáng)城市榜單排名/seo sem推廣
  • 南寧機(jī)關(guān)兩學(xué)一做網(wǎng)站/網(wǎng)絡(luò)營銷八大工具
  • 天津市建設(shè)工程信息交易網(wǎng)/seo免費(fèi)培訓(xùn)教程
  • 做餐飲要看的網(wǎng)站/seo批量建站
  • 北京做網(wǎng)站浩森宇特/品牌推廣軟文200字
  • 靖江網(wǎng)站建設(shè)/百度小說風(fēng)云榜今天
  • 漳州專業(yè)網(wǎng)站建設(shè)費(fèi)用/青島seo用戶體驗(yàn)
  • 天津做網(wǎng)站要多少錢/百度seo流量
  • 專業(yè)建設(shè)網(wǎng)站公司哪家好/優(yōu)化深圳seo
  • 企業(yè)網(wǎng)站服務(wù)器選擇/torrentkitty磁力官網(wǎng)
  • 石獅市網(wǎng)站建設(shè)/seo 頁面鏈接優(yōu)化
  • 上海網(wǎng)站排名團(tuán)隊(duì)/百度搜索引擎的網(wǎng)址是
  • ds216j做網(wǎng)站/跨境電商培訓(xùn)
  • 微網(wǎng)站 pc網(wǎng)站同步/長沙靠譜關(guān)鍵詞優(yōu)化公司電話
  • 人設(shè)生成器網(wǎng)站/怎么把平臺(tái)推廣出去
  • 溧陽手機(jī)網(wǎng)站哪里做/學(xué)it什么培訓(xùn)機(jī)構(gòu)好
  • 找人網(wǎng)站/網(wǎng)頁模板怎么用
  • 揭陽網(wǎng)站制作案例/如何在各種網(wǎng)站投放廣告
  • 網(wǎng)站免費(fèi)正能量入口/百度首頁推薦關(guān)不掉嗎
  • 網(wǎng)站建設(shè)步驟及分工/優(yōu)秀軟文范例100字
  • 對(duì)網(wǎng)站進(jìn)行優(yōu)化/網(wǎng)站排名快速提升