日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

动态代理-JDK

發布時間:2024/10/5 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 动态代理-JDK 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

代理模式:假設一個場景,你的公司是一位軟件公司,你是一位軟件工程師,顯然客戶帶著需求不會去找你談,而是去找商務談,此時商務就代表公司。
商務的作用:商務可以談判;也有可能在開發軟件之前就談失敗,此時商務就會根據公司規則去結束和客戶的關系,這些都不用軟件工程師來處理。
代理對象的作用:在真實對象訪問之前或者之后加入對應的邏輯,或者根據其他控制是否使用真實對象,這個例子就是商務控制了客戶對軟件工程師的訪問。客戶就是程序中的調用者,商務就是代理對象,軟件工程師就是真是對象
1.定義接口

public interface HelloWorld {public void sayHelloWorld(); }

2.創建實現類實現接口

package cn.batis.impl;import cn.batis.interfaces.HelloWorld;public class HelloWorldImpl implements HelloWorld {public void sayHelloWorld() {System.out.println("hello world!");} }

3.建立代理對象和真實對象之間的關系(bind方法)
4.實現代理邏輯方法(invoke方法)

package cn.batis.proxy;import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy;public class JDKProxyExample implements InvocationHandler {//真實對象private Object target=null;/*** 建立代理對象和真實對象的代理關系,并返回代理對象* @param target 真實對象* @return 代理對象*/public Object bind(Object target){this.target=target;return Proxy.newProxyInstance(target.getClass().getClassLoader(),target.getClass().getInterfaces(),this);}public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {System.out.println("進入代理邏輯方法");System.out.println("在調度真實對象之前的服務");Object obj = method.invoke(target, args);System.out.println("在調度真實對象之后的服務");return obj;} }

總結

以上是生活随笔為你收集整理的动态代理-JDK的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。