给大家奉献点,供大家学习java的代理模式

oa00b 2008-08-06 08:53:43
web开发的移植性,是靠那种java代理模式
把大家会的java代理模式贴出来吧
...全文
71 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jdlsfl 2008-08-06
  • 打赏
  • 举报
回复
贴个网上的

在软件工程中,代理模式(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);
}
zhuzy2004 2008-08-06
  • 打赏
  • 举报
回复
up
dryZeng 2008-08-06
  • 打赏
  • 举报
回复
不理解,帮顶.
jdlsfl 2008-08-06
  • 打赏
  • 举报
回复
sf
xuxiang19840814 2008-08-06
  • 打赏
  • 举报
回复
支持,很高兴大家能够分享,谢谢了
qlrhoo 2008-08-06
  • 打赏
  • 举报
回复
业务动态代理
去我空间看看吧http://blog.csdn.net/qlrhoo
fejay 2008-08-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dryZeng 的回复:]
不理解,帮顶.
[/Quote]
jyq0105 2008-08-06
  • 打赏
  • 举报
回复
xx
oa00b 2008-08-06
  • 打赏
  • 举报
回复

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧