代理模式之動態代理
動態代理
自從JDK的版本到1.3以后,java語言通過java.lang.reflect庫中,提供了三個類來直接支持代理模式。
分別是:Proxy,InvocoationHandler和Method。
Proxy類使得設計師能夠在運行時間創建代理對象
當系統有了一個代理對象后,對源對象的方法調用會首先被分派給一個調用處理器(InvocationHandler)//接口
InvocationHandler接口中有一個invoke()方法
程序可以在調用處理器的invoke方法中截獲這個調用,進行額外的操作
創建動態代理對象的步驟:
1.指明一系列的接口來創建一個代理對象
2.創建一個調用處理器(InvocationHandler)對象
3.將這個代理指定為某個其他對象的代理對象
4.在調用處理器的invoke方法中采取代理,一方面將調用傳遞給真實對象,另一方面執行各種需要做的操作。
電腦代理商
抽象主題角色:SaleComputer
真實主題角色:ComputerMaker
代理主題角色:ComputerProxy
Java動態代理的過程:ProxyFunction(我們定義的一個類,由這個類來具體的完成代理過程)
源代碼 http://www.aygfsteel.com/Files/vjame/ProxyDemo02.rar
自從JDK的版本到1.3以后,java語言通過java.lang.reflect庫中,提供了三個類來直接支持代理模式。
分別是:Proxy,InvocoationHandler和Method。
Proxy類使得設計師能夠在運行時間創建代理對象
當系統有了一個代理對象后,對源對象的方法調用會首先被分派給一個調用處理器(InvocationHandler)//接口
InvocationHandler接口中有一個invoke()方法
程序可以在調用處理器的invoke方法中截獲這個調用,進行額外的操作
創建動態代理對象的步驟:
1.指明一系列的接口來創建一個代理對象
2.創建一個調用處理器(InvocationHandler)對象
3.將這個代理指定為某個其他對象的代理對象
4.在調用處理器的invoke方法中采取代理,一方面將調用傳遞給真實對象,另一方面執行各種需要做的操作。
電腦代理商
抽象主題角色:SaleComputer
真實主題角色:ComputerMaker
代理主題角色:ComputerProxy
Java動態代理的過程:ProxyFunction(我們定義的一個類,由這個類來具體的完成代理過程)
源代碼 http://www.aygfsteel.com/Files/vjame/ProxyDemo02.rar
posted on 2008-10-29 18:54 lanjh 閱讀(213) 評論(0) 編輯 收藏 所屬分類: 設計模式