Java設計模式之代理模式篇(1)

發表于:2008-06-04來源:作者:點擊數: 標簽:設計javaJAVAJava代理
關鍵字: Java 代理模式 在 軟件工程 中,代理模式(Proxy Pattern)在很多情況下都非常有用。例如在Java XML保重, 開發 人員可以利用代理來訪問Web服務。例1中演示了經典的Hello World Web服務的例子: 例1 一個 SOA P代理的例子 public class HelloClient
關鍵字:Java 代理模式

 在軟件工程中,代理模式(Proxy Pattern)在很多情況下都非常有用。例如在Java XML保重,開發人員可以利用代理來訪問Web服務。例1中演示了經典的Hello       World Web服務的例子:
  例1 一個SOAP代理的例子
  public class HelloClient {
    public static void main(String[] args) {
      try {
           HelloIF_Stub proxy = (HelloIF_Stub)(new HelloWorldImpl().getHelloIF());
           proxy._setTargetEndpoint(args[0]);
           System.out.println(proxy.sayHello("Hello World!"));
           } catch (Exception ex) {
             ex.printStackTrace();
           }
           }
           }


    在例一中,客戶端首先獲得對代理的引用,然后利用命令行參數設定代理的端點(即Web服務的URL地址),接下來調用代理的sayHello()方法,代理再將方法調用傳遞給相應的Web服務。

    代理模式和修飾模式(Decorator Pattern)有一定的相似之處。兩個模式又使用了代理將方法調用傳遞給另一個對象,該對象被稱為真實對象(Real Subject)。代理模式和修飾模式的不同之處在于:在代理模式中,代理和真實對象之間的關系在程序被編譯的時候就確定下來了,而修飾模式則是在運行時遞歸地創建。

    本文首先提供一個ImageIcon的例子來說明代理模式,然后會探討一下JDK是如何支持代理模式的。

    代理模式

    代理模式通過使用代理來替代實際的對象,使程序能夠控制對該對象的訪問。下面是一個ImageIcon的例子。

    例2 ImageIcon的例子
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class IconTest extends JFrame {
      private static String IMAGE_NAME = "hands.jpg";
      private static int FRAME_X = 150, FRAME_Y = 200,
      FRAME_WIDTH = 430, FRAME_HEIGHT = 392;
      private Icon imageIcon = null, imageIconProxy = null;
      static public void main(String args[]) {
      IconTest app = new IconTest();
      app.show();
   }
    public IconTest() {
      super("ImageIcon測試");
      imageIcon = new ImageIcon(IMAGE_NAME);
      setBounds(FRAME_X, FRAME_Y, FRAME_WIDTH, FRAME_HEIGHT);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   }
    public void paint(Graphics g) {
      super.paint(g);
      Insets insets = getInsets();
      imageIcon.paintIcon(this, g, insets.left, insets.top);
   }

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97