定义:

  为另一个对象提供一个替身或占位符以访问这个对象。

远程代理

虚拟代理

保护代理、动态代理

其它:

  远程代理的远程接口必须继承记号接口Remote

  远程代理的使用过程中,要注意序列化的问题,

  远程代理的远程服务类必须继承UnicastRemoteObject超类,同时实现远程接口。

  远程代理需要RMI Resgistry注册服务。

远程代理服务端关键代码:

public static void main(String[] argv){
try{
//生成对象
MyRemote service = new MyRemoteImpl();
//注册
Naming.rebing("RemoteHello",service);
}
catch(Exception ex){
ex.printStackTrace();
}
}

远程代理客户端关键代码:

public static void main(String[] argv){
try{
MyRemote service = (MyRemote)Naming.lookup("rmi://127.0.0.1/RemoteHello");
String s = service.sayHello();
System.out.pritnln(s);
}
catch(Exception ex){
ex.printStackTrace();
}
}

要点:

  代理模式为另一个对象提供代表,以便控制客户对象的访问,管理访问的方式有多种。

  远程代理管理客户和远程对象之间的交互。

  虚拟代理控制访问实例化开销大的对象。

  保护代理基于调用者控制对象方法的访问。

  代理模式有许多谈何,例如:缓存代理、同步代理、防火墙代理和写入时复制代理。

  代理在结构上类似装饰者,但是目的不同。

  装饰者模式是为对象加上行为,而代理则是控制访问。

  Java内置的代理支持,可以根据需要建立动态代理,并将所有调用分配到所选的处理器。

  就和其他的包装者(wrapper)一样,代理会造成你的设计中类的数目增加。

【HeadFirst设计模式】11.代理模式的更多相关文章

  1. HeadFirst设计模式之代理模式

    一. 1.The Proxy Pattern provides a surrogate or placeholder for another object to control access to i ...

  2. Head First 设计模式 --11 代理模式

    代理模式:为另一个对象提供一个替身或占位符以控制对这个对象的访问. 代码: interface Boss { public void meeting(); } class BossImp implem ...

  3. C#设计模式(13)——代理模式(Proxy Pattern)

    一.引言 在软件开发过程中,有些对象有时候会由于网络或其他的障碍,以至于不能够或者不能直接访问到这些对象,如果直接访问对象给系统带来不必要的复杂性,这时候可以在客户端和目标对象之间增加一层中间层,让代 ...

  4. 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)

    原文:乐在其中设计模式(C#) - 代理模式(Proxy Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 作者:webabcd 介绍 为 ...

  5. Java设计模式之代理模式(静态代理和JDK、CGLib动态代理)以及应用场景

    我做了个例子 ,需要可以下载源码:代理模式 1.前言: Spring 的AOP 面向切面编程,是通过动态代理实现的, 由两部分组成:(a) 如果有接口的话 通过 JDK 接口级别的代理 (b) 如果没 ...

  6. 设计模式之代理模式之二(Proxy)

    from://http://www.cnblogs.com/xwdreamer/archive/2012/05/23/2515306.html 设计模式之代理模式之二(Proxy)   0.前言 在前 ...

  7. 夜话JAVA设计模式之代理模式(Proxy)

    代理模式定义:为另一个对象提供一个替身或者占位符以控制对这个对象的访问.---<Head First 设计模式> 代理模式换句话说就是给某一个对象创建一个代理对象,由这个代理对象控制对原对 ...

  8. GOF23设计模式之代理模式

    GOF23设计模式之代理模式 核心作用:通过代理,控制对对象的访问.可以详细控制访问某个(某类)对象的方法,在调用这个方法前做前置处理,调用这个方法后做后置处理(即:AOP的微观实现) AOP(Asp ...

  9. C#设计模式:代理模式(Proxy Pattern)

    一,什么是C#设计模式? 代理模式(Proxy Pattern):为其他对象提供一种代理以控制对这个对象的访问 二,代码如下: using System; using System.Collectio ...

  10. js设计模式——1.代理模式

    js设计模式——1.代理模式 以下是代码示例 /*js设计模式——代理模式*/ class ReadImg { constructor(fileName) { this.fileName = file ...

随机推荐

  1. 教你50招提升ASP.NET性能(十二):在生产环境,仔细考虑你需要记录哪些日志

    (18)When in production, carefully consider what you need to log 招数18: 在生产环境,仔细考虑你需要记录哪些日志 Many peopl ...

  2. Tomcat无法部署项目

    设置项目的Jdk,compire version 增加java EE 如果有必要,现在项目根目录下放置.mymetadata文件 <?xml version="1.0" en ...

  3. 利用sqlmap和burpsuite绕过csrf token进行SQL注入 (转)

    问题:post方式的注入验证时遇到了csrf token的阻止,原因是csrf是一次性的,失效导致无法测试. 解决方案:Sqlmap配合burpsuite,以下为详细过程,参照国外牛人的blog(不过 ...

  4. 【11】在operator=中处理“自我赋值”

    1.自我赋值,看起来愚蠢,但是却合法.有些自我赋值一眼就可看出来.有些自我赋值是潜在的.比如:a[i] = a[j]; *px = *py; 甚至不同类型的指针,都指向同一个地址,也是自我赋值,这一类 ...

  5. js Uncaught SyntaxError: Unexpected token错误

    今天遇到js报错Uncaught SyntaxError: Unexpected token 不知道是什么原因,并且js还会继续往下执行. 经过排查竟然是在保存行的上面有个if少一个大括号,真是坑爹啊 ...

  6. percona-toolkit -1

    http://blog.chinaunix.net/uid/16844903/cid-165634-list-1.html

  7. Linux HugePages及MySQL 大页配置

    http://blog.csdn.net/dba_waterbin/article/details/9669929       ㈠ HugePages简介             HugePages是 ...

  8. java_IO读写模版

    InputStream in = null; OutputStream out = null; try{ in = new FileInputStream(); int len=0; byte buf ...

  9. Authentication

    Authentication Introduction Configuration Storing Passwords Authenticating Users Basic Usage Introdu ...

  10. 简书APP

    找第三方的时候看到简书这个APP,上网搜了一下发现网页版非常的干净,开头的一篇文章就是"你没实力就别心存侥幸",看完也挺有有同感的.文章网址:http://www.jianshu. ...