1. 程式人生 > >代理模式-ArrayList的動態代理

代理模式-ArrayList的動態代理

public class ArrayListProxy {
    public static void main(String[] args) {
        final ArrayList target = new ArrayList();
        List proxy = (List)Proxy.newProxyInstance(
                List. class.getClassLoader(),
                ArrayList. class.getInterfaces(),
                new InvocationHandler(){
                    public Object invoke(Object proxy , Method method, Object[] args)
                            throws Throwable{
                        Long beginTime = System.currentTimeMillis();
                        Thread. sleep(10);
                        Object reVal = method.invoke( target, args);
                        long endTime = System.currentTimeMillis ();

                        System. out.println(method .getName() + " runing time is :" + (endTime - beginTime));
                        return reVal ;
                    }
                });

        proxy.add("測試——1");
        proxy.add("測試——2");
        proxy.add("測試——3");
        proxy.add("測試——4");
        System. out.println(proxy .toString());

    }

}

相關推薦

設計模式_代理模式_動態代理

ride new http devel override 主題 引入 一個 技術 轉自:https://www.ibm.com/developerworks/cn/java/j-lo-proxy-pattern/index.html 動態代理是指在運行時動態生成代理類。即,

輕松學Java 中的代理模式動態代理

false spec 軟件 類名 提高 UNC factor targe AMM 前幾天我寫了《秒懂,Java 註解 (Annotation)你可以這樣學》,因為註解其實算反射技術中的一部分,然後我想了一下,反射技術中還有個常見的概念就是動態代理,於是索性再寫一篇關於動態代

Java設計模式---代理模式(二)---動態代理

動態代理 動態代理和代理模式實質是一樣的,只是要更加靈活。 代理模式請見本部落格另一篇文章 ”Java設計模式---代理模式(一)“ 例、 房東介面: package cn.hncu.pool.day2.proxy.demo1; public interf

Java設計模式代理模式動態代理

前言 什麼是動態代理呢?動態代理指的是在實現階段不需要關心代理誰,而是在執行階段才指定哪一個物件。   動態代理示例 首先要介紹一下JDK提供的一個動態代理介面 InvocationHandler。這個介面的用途在於對代理類的方法進行代理,我們先實現InvocationHandle

Java設計模式代理模式動態代理下篇

前言 上篇我們演示了使用JDK的InvocationHandler實現動態代理,本文我們採用cglib來實現動態代理。   動態代理示例 運用JDK的InvocationHandler是根據抽象介面來實現的,然而基於cglib來實現動態代理,被代理角色可以是一個普通的類,也可以是一個介面的實

設計模式之禪學習筆記09--代理模式動態代理

1.動態代理     動態代理還是屬於設計模式--代理模式的一種,代理類在程式執行時建立的代理方式被成為動態代理。動態代理是在實現階段不用關心代理誰,而在執行階段才指定代理哪一個物件。相對來說,自己寫代理類的方式就是靜態代理。現在有一個非常流行的名稱叫做面向橫切面程式設計,也

Java代理模式動態代理

    代理模式是設計模式中非常重要的一種型別。代理模式從型別上來說,可以分為靜態代理和動態代理兩種型別。     假設一個場景,有一個蛋糕店,賣的蛋糕都是用蛋糕機做的,而且不同種類的蛋糕由不同的蛋糕機來做,有水果蛋糕機,巧克力蛋糕機等。它們賣的麵包片也是麵包機做的,不同種

Java 中的代理模式動態代理

代理 代理是英文 Proxy 翻譯過來的。我們在生活中見到過的代理,大概最常見的就是朋友圈中賣面膜的同學了。 她們從廠家拿貨,然後在朋友圈中宣傳,然後賣給熟人。 按理說,顧客可以直接從廠家購買產品,但是現實生活中,很少有這樣的銷售模式。一般都是廠家委託給代理商進行銷

Java 代理模式動態代理

代理 代理是英文 Proxy 翻譯過來的。我們在生活中見到過的代理,大概最常見的就是朋友圈中賣面膜的同學了。 她們從廠家拿貨,然後在朋友圈中宣傳,然後賣給熟人。 按理說,顧客可以直接從廠家購買產品,但是現實生活中,很少有這樣的銷售模式。一般都是廠家委託給代理商

java代理模式動態代理

1.代理模式 為什麼使用代理模式? 當處理實際的業務邏輯之前或者之後,想要處理一些別的事。比如吃飯是我真實要做的事情,但是在吃飯之前我必須要做飯,之後必須要洗碗。 做飯洗碗可以讓別人代做。 吃飯介面 package com.wch.api; public i

輕鬆學,Java 中的代理模式動態代理

前幾天我寫了《秒懂,Java 註解 (Annotation)你可以這樣學》,因為註解其實算反射技術中的一部分,然後我想了一下,反射技術中還有個常見的概念就是動態代理,於是索性再寫一篇關於動態代理的博文好了。 我們先來分析代理這個詞。 代理 代理是英

設計模式--代理模式動態代理

代理模式是常用的java設計模式,他的特徵是代理類與委託類有同樣的介面,代理類主要負責為委託類預處理訊息、過濾訊息、把訊息轉發給委託類,以及事後處理訊息等。代理類與委託類之間通常會存在關聯關係,一個代理類的物件與一個委託類的物件關聯,代理類的物件本身並不真正實現服務,而是通過

Java設計模式-代理模式動態代理(附原始碼分析)

具體有如下四步驟: 通過實現 InvocationHandler 介面建立自己的呼叫處理器;通過為 Proxy 類指定 ClassLoader 物件和一組 interface 來建立動態代理類;通過反射機制獲得動態代理類的建構函式,其唯一引數型別是呼叫處理器介面型別;通過建構函式建立動態代理類例項,構造時

設計模式代理模式動態代理

概要 設計模式是一門藝術,如果真正瞭解這門藝術,你會發現,世界都將變得更加優美。 簡介 在上一篇已經大概講解了代理模式,相信大家對代理模式有一定的瞭解了,如果沒有 相信大家肯定有收穫,如果有了一定的基礎,那麼在去看,相信理解會更加快,而且非常容易

Java的三種代理模式(Spring動態代理物件)

Java的三種代理模式 1.代理模式 代理(Proxy)是一種設計模式,提供了對目標物件另外的訪問方式;即通過代理物件訪問目標物件.這樣做的好處是:可以在目標物件實現的基礎上,增強額外的功能操作,即擴充套件目標物件的功能. 這裡使用到程式設計中的一個思想

java設計模式代理模式動態代理

  今天給大家分享的是java設計模式之代理模式中的動態代理模式。如有不足,敬請指正。   我們上次說到靜態代理使用一個代理類

代理模式-ArrayList動態代理

public class ArrayListProxy { public static void main(String[] args) { final ArrayList target = new ArrayList(); List

淺談java中內置的觀察者模式動態代理的實現

所有 代理 notify play ani effect 一個 indicate protected 一.關於觀察者模式 1.將觀察者與被觀察者分離開來,當被觀察者發生變化時,將通知所有觀察者,觀察者會根據這些變化做出對應的處理。 2.jdk裏已經提供對應的Observer

【設計模式代理模式:靜態代理動態代理,spring aop

spring 實現接口 找到 master 代碼 -s result java 統一 代理模式分為靜態代理和動態代理。我們拿鏈家來舉例子,我們本人是真實的對象,有真實的業務需求:需要去找房子;鏈家是中介,是代理類,他來幫我執行找房子的這個操作。 靜態代理:   1.實現一個

C# Aspect-Oriented Programming(AOP) 利用多種模式實現動態代理

style erp all 可操作性 mar targe spa min 異常 什麽是AOP(Aspect-Oriented Programming)? AOP允許開發者動態地修改靜態的OO模型,構造出一個能夠不斷增長以滿足新增需求的系統,就象現實世界中的對象會在其生命周期