java技術博客

          jsp博客
          數據加載中……
          java代理模式
          package orj.jzkangta.proxydemo02;

          public class ComputerMaker implements SaleComputer {

              
          public void sale(String type) {
                  System.out.println(
          "賣出了一臺"+type+"電腦");

              }


          }



          package orj.jzkangta.proxydemo02;

          import java.lang.reflect.Proxy;

          public class ComputerProxy {
              
          public static SaleComputer getComputerMaker(){
                  ProxyFunction pf
          =new ProxyFunction();
                  
          return (SaleComputer)Proxy.newProxyInstance(ComputerMaker.class.getClassLoader(), ComputerMaker.class.getInterfaces(), pf);
              }

          }





          package orj.jzkangta.proxydemo02;

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

          public class ProxyFunction implements InvocationHandler {
              
          private ComputerMaker cm;
              
              
          public void youHui(){
                  System.out.println(
          "我給你一些優惠。。。");
              }

              
              
          public void giveMouse(){
                  System.out.println(
          "我還要送你一個鼠標。。。 ");
              }

              
          public Object invoke(Object arg0, Method arg1, Object[] arg2)
                      
          throws Throwable {
                  String type
          =(String)arg2[0];
                  
          if(type.equals("聯想")||type.equals("三星")){
                      
          if(cm==null){
                          cm
          =new ComputerMaker();
                          youHui();
                          giveMouse();
                          arg1.invoke(cm, type);
                      }

                  }
          else{
                      System.out.println(
          "我沒有你要的這個牌子的電腦。。。。");
                  }

                  
          return null;
              }


          }

          package orj.jzkangta.proxydemo02;

          public interface SaleComputer {
              
          public void sale(String type);
          }


          package orj.jzkangta.proxydemo02;

          public class Test {

              
              
          public static void main(String[] args) {
                  SaleComputer sc
          =ComputerProxy.getComputerMaker();
                  
          //sc.sale("聯想");
                  
          //sc.sale("三星");
                  sc.sale("Dell");

              }


          }

          posted on 2008-10-31 07:49 郭興華 閱讀(727) 評論(0)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 芷江| 石城县| 夏河县| 屏边| 淮安市| 抚远县| 和政县| 喀喇| 昌吉市| 宜都市| 麻栗坡县| 玉环县| 博白县| 辉南县| 临朐县| 博湖县| 花莲县| 兴和县| 孙吴县| 汾阳市| 阜新市| 依安县| 吉安县| 深州市| 白沙| 岑巩县| 桂东县| 绥芬河市| 廊坊市| 龙门县| 天镇县| 波密县| 龙南县| 酉阳| 绥棱县| 阜宁县| 衡阳县| 宁城县| 青田县| 乐清市| 肥东县|