大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 動態代理設計模式

動態代理設計模式

更新時間:2021-08-10 13:48:24 來源:動力節點 瀏覽1200次

1.反射與代理設計模式

動態代理設計模式:為所有功能一致的業務操作接口提供統一的代理處理操作

代理設計模式的核心是有真實業務實現類與代理業務實現類,代理類會完成比真實業務更多的處理邏輯。

傳統代理設計模式的弊端:所有的代理設計模式如果按照設計要求來講,必須是基于接口的設計。而靜態代理設計的特點在于:一個代理類只為一個接口服務。這也是問題所在。

2.動態代理類綁定真實對象

java提供的動態代理實現

//主體接口
interface ISubject{
    public void eat(String food,int num);
} 
//真實操作類
class Subject implements ISubject{ 
    @Override
    public void eat(String food, int num) {
        System.out.println("吃了"+num+"份"+food);
    }
}
//動態代理類[偽代理],想使用動態代理必須實現此接口
class ProxySubject implements InvocationHandler{ 
    private Object target; 
    //動態代理綁定真實業務對象 返回動態代理對象
    public Object bind(Object target){
        this.target = target;
        return Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), this);
    } 
    public void eatParpre(){
        System.out.println("準備食物");
    } 
    public void eatClear(){
        System.out.println("吃完啦,刷盤子");
    } 
    //Spring的Aop核心就是使用的動態代理
    //method存儲的是真實業務對象的方法對象[eat方法對象]
    //args參數 此處應該是我傳遞的 "雞腿", 20 看下圖
    @Override
    public Object invoke(Object proxy, Method method, Object[] args)
            throws Throwable {
        this.eatParpre();
        //使用反射調用核心業務方法
        Object ret = method.invoke(target, args);
        this.eatClear();
        return ret;
    } 
} 
public class ProxyTest { 
    public static void main(String[] args) {
        //調用
        ISubject subject = (ISubject)new ProxySubject().bind(new Subject());
        //subject調用eat的時候會觸發代理對象調用invoke方法,在invoke方法里使用反射調用真實業務方法
        subject.eat("雞腿", 20);
    }
} 
運行結果:
準備食物
吃了20份雞腿
吃完啦,刷盤子

例子場景:打架

如:

桃花島比武搶親之戰 —— 郭靖與歐陽克

華山論劍正邪之戰 —— 北丐洪七公和西毒歐陽峰

小朋友夢想之戰 —— 奧特曼與鎧甲勇士

這些戰斗之中,都要打架,但是打架之前需要有一些前期準備,打架(實戰)工作由目標對象實現,而前期的準備(練功)工作則由代理對象實現。

以上就是動力節點小編介紹的"動態代理設計模式",希望對大家有幫助,想了解更多可查看Java設計模式。動力節點在線學習教程,針對沒有任何Java基礎的讀者學習,讓你從入門到精通,主要介紹了一些Java基礎的核心知識,讓同學們更好更方便的學習和了解Java編程,感興趣的同學可以關注一下。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 天天天天天操 | a在线观看免费 | 久久综合色播 | 久久99热精品| 亚洲一一在线 | 国产综合色在线视频区色吧图片 | 青草青青在线视频观看 | 大色综合色综合网站 | 久久99精品九九九久久婷婷 | 欧美大片在线观看成人 | 热久久国产 | 99精品在线| 欧美成年黄网站色高清视频 | 四虎影院最新 | 久久精品国产99久久无毒不卡 | 国产亚洲精品久久久久久小说 | 激情时刻| 天天干天天拍天天射 | 99精品免费在线 | 欧美激情(一区二区三区) | 久久国产资源 | 亚洲精品乱码久久久久久中文字幕 | 成人a毛片在线看免费全部播放 | 免费网站看v片在线成人国产系列 | 久久97久久97精品免视看清纯 | 91最新在线视频 | 亚洲高清成人欧美动作片 | 又粗又大的机巴好爽视频视频 | 中文字幕日韩精品亚洲七区 | 呦系列视频一区二区三区 | 亚洲国产aaa毛片无费看 | 不卡午夜 | 欧美国产亚洲精品a第一页 欧美国产亚洲精品高清不卡 | 国产精品国内免费一区二区三区 | 永久免费的啪啪免费的网址 | 亚洲一区二区三区在线 | 国产成人亚洲精品91专区高清 | 亚洲 欧美 中文 日韩欧美 | 免费香蕉依人在线视频久 | 免费高清在线爱做视频 | 一级一片免费看 |