<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    美麗涵涵童裝店--說我博客名字,給你們打折!
    隨筆 - 82  文章 - 266  trackbacks - 0
    <2007年9月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    30123456


    點擊這里給楊愛友發消息
    美麗涵涵童裝店
    說我博客名字,給你們打折!

    常用鏈接

    留言簿(6)

    隨筆分類

    隨筆檔案

    文章檔案

    好友的BLOG

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    代理模式:為其他對象提供一種代理以控制對這個對象的訪問。這種功能只有在編譯無法確定要實現哪個接口時才有必要使用。利用代理可以創建一個實現了一組接口的新類。代理類與被代理類必須實現同一個接口,代理對象是在運行時由調用處理器定義的新類,它有一個名字,如$Proxy0。代理對象一旦被創建,與虛擬機上的任何其他類沒有什么區別。

    給大家舉個比較簡單的例子:
    假如你買臺IBM的筆記本,IBM產家是不提供鼠標的.但是我們如果從代理商的手里買就有鼠標和送.
    很簡單的例子,寫幾個類來實現一下吧.
    1. 首先設計一個購買的接口代碼如下:(ComputerInterface.java)
    1 public interface ComputerInterface {
    2      public void buy();
    3 }
    4 

    2. 建一個電腦類實現購買的接口代碼如下:(Computer.java)  
     1 public class Computer implements ComputerInterface{
     2     private String pcName="IBMT60";
     3     private int pcPrice=17800;
     4     public String getPcName() {
     5         return pcName;
     6     }
     7     public void setPcName(String pcName) {
     8         this.pcName = pcName;
     9     }
    10     public int getPcPrice() {
    11         return pcPrice;
    12     }
    13     public void setPcPrice(int pcPrice) {
    14         this.pcPrice = pcPrice;
    15     }
    16     public void buy() {
    17     System.out.print("獲得筆記本電腦:"+pcName+"一臺");
    18     }
    19 }

    3. 再建設一個代理商的類:用來完成買電腦和贈送鼠標:(ComputerProxy.java)
     1 public class ComputerProxy {
     2     private ComputerInterface pci;
     3     public ComputerInterface getPci() {
     4         return pci;
     5     }
     6     public void setPci(ComputerInterface pci) {
     7         this.pci = pci;
     8     }
     9     public void buy(){
    10         pci.buy();
    11         System.out.println("贈送鼠標一個");
    12     }
    13 }

    4. 建一個主函數測試一下:(TestDemo.java)
    1 public class TestDemo {
    2     public static void main(String[] args) {
    3         ComputerProxy c1=new ComputerProxy();
    4         c1.setPci(new Computer());
    5         c1.buy();
    6     }
    7 }

    運行結果如下:
    獲得筆記本電腦:IBMT60一臺獲得鼠標一個
    以上就是代理功能的實現,由代理商銷售筆記本,并贈送鼠標.但是這樣的程序只適合是銷售IBM筆記本.那么如果要是其它品牌呢.所以我們來更改一個代理類.來實現動態的代理.

    5. 建立一個類代碼如下:(ComputerDynamicProxy.java)
     1 public class ComputerDynamicProxy implements InvocationHandler {
     2     /*
     3      * 調用處理器是實現了InvocationHandler接口的類對象,在這個接口中只有一個方法:
     4      * Object invoke(Object proxy,Method method,Object[] args);
     5      * 無論何時調用代理對象的方法,調用處理器的invoke()方法都會被調用,并向其傳遞Method對象和原始的參數。
     6      */ 
     7     private Object delegate;
     8     
     9     // 描述是誰的代理,也就是與那個類有關系
    10     public Object bind(Object delegate) {
    11         this.delegate = delegate;
    12         return Proxy.newProxyInstance(delegate.getClass().getClassLoader(),
    13                 delegate.getClass().getInterfaces(), this);
    14     }
    15 
    16     public Object invoke(Object proxy, Method method, Object[] args)
    17             throws Throwable {
    18         System.out.println("贈送鼠標一個!");
    19         Object result = method.invoke(delegate, args);
    20         return result;
    21     }
    22 }

    主函數修改如下:
          
    1 public class TestDemo {
    2     public static void main(String[] args) {
    3         ComputerDynamicProxy proxy = new ComputerDynamicProxy();
    4         ComputerInterface computer = (ComputerInterface) proxy.bind(new Computer());
    5         //返回一個代理類的實例,并非返回一個ComputerInterface對象,事實上他也不能被實例化不能有對象,返回的對象名可能為$computer
    6         computer.buy();
    7     }
    8 }
    9 

    就可以實現動態代理了.
    posted on 2007-09-04 01:15 楊愛友 閱讀(784) 評論(0)  編輯  收藏 所屬分類: java相關技術
    美麗涵涵童裝店
    親,說我博客名字,給你們打折!
    主站蜘蛛池模板: 亚洲精品二区国产综合野狼| 精品久久免费视频| 伊人久久综在合线亚洲91| 亚洲A∨精品一区二区三区下载| 日韩精品成人无码专区免费| 久久精品国产亚洲AV高清热| 日本在线免费观看| 亚洲毛片在线观看| 2021在线观看视频精品免费| 综合自拍亚洲综合图不卡区| 四虎在线成人免费网站| 亚洲a级在线观看| 免费的一级黄色片| 看免费毛片天天看| 成人亚洲性情网站WWW在线观看 | 亚洲一区二区三区不卡在线播放| 午夜免费1000部| 亚洲熟女精品中文字幕| 日本特黄特黄刺激大片免费| 亚洲av午夜国产精品无码中文字| 全亚洲最新黄色特级网站| 中文字幕在线免费看| 亚洲欧洲在线观看| 毛片网站免费在线观看| 黄色网页免费观看| 亚洲AV无一区二区三区久久| 免费成人高清在线视频| 亚洲午夜在线一区| www国产亚洲精品久久久| 中文字幕av免费专区| 精品无码一区二区三区亚洲桃色| 永久免费的网站在线观看| 国产成人亚洲精品蜜芽影院| 国产亚洲精品精品国产亚洲综合| 一级毛片aaaaaa免费看| 亚洲熟女综合色一区二区三区| 亚洲日韩中文字幕日韩在线| 免费无码成人AV在线播放不卡| 亚洲欧洲国产综合AV无码久久| 国产美女亚洲精品久久久综合| 日本高清在线免费|