posts - 51, comments - 17, trackbacks - 0, articles - 9
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          java模式之代理模式

          Posted on 2007-01-05 20:43 chenweicai 閱讀(194) 評論(0)  編輯  收藏

          代理模式一般有三個角色:
          1。抽象主題角色(interface or abstract class)
          package ProxyPattern;

          /**
          ?* 抽象主題角色,定義了公共接口
          ?* @author chenweicai
          ?*
          ?*/
          public interface Merchant {

          ?public void treat();
          }

          2。真實主題角色


          package ProxyPattern;

          /**
          ?* 真實主題角色,實現了抽象主題接口
          ?*
          ?* @author?chenweicai
          ?*
          ?*/
          public class Director implements Merchant {

          ?public Director() {

          ?}

          ?public void treat() {
          ??// TODO Auto-generated method stub
          ??System.out.println("董事長請大家吃飯!");
          ?}

          }


          3。代理主題角色
          package ProxyPattern;

          import java.lang.reflect.InvocationHandler;
          import java.lang.reflect.Method;

          /**
          ?* 代理主題角色
          ?*
          ?* @author?chenweicai?
          ?*/
          public class Secretory implements InvocationHandler {

          ?/**
          ? * 定義真實主題
          ? */
          ?private Director director;
          ?
          ?public Secretory(Director director) {
          ??this.director = director;
          ?}

          ?public Object invoke(Object proxy, Method method, Object[] args)
          ???throws Throwable {
          ??// TODO Auto-generated method stub
          ??director.treat();
          ??System.out.println("由秘書來結帳哦!");
          ??return null;
          ?}

          }

          //---------------------------------------------------
          ??Director director = new Director();
          ??InvocationHandler secretory = new Secretory(director);
          ??Merchant merchant = (Merchant) Proxy.newProxyInstance(director
          ????.getClass().getClassLoader(), director.getClass()
          ????.getInterfaces(), secretory);
          ??merchant.treat();


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 出国| 普定县| 隆子县| 冕宁县| 沽源县| 天水市| 陆川县| 嘉义市| 诏安县| 鹿邑县| 宁河县| 平顺县| 木兰县| 彰武县| 哈尔滨市| 含山县| 泰州市| 金山区| 东乡| 安多县| 余干县| 东丰县| 忻州市| 象州县| 邹城市| 西藏| 英吉沙县| 武乡县| 孟津县| 嘉兴市| 安塞县| 永城市| 潞西市| 多伦县| 长垣县| 黄石市| 镇康县| 木兰县| 闽侯县| 哈尔滨市| 池州市|