《java的静态代理和动态代理》.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《java的静态代理和动态代理》.pdf

Java静态代理和动态代理 2014年3月18 日 11:35 • 参考 《Core Java 2》和 /giserstone/article/details • 概述 为某个对象提供一个代理,以控制对这个对象的访问。 代理类和委托类有共同的父类或 父接口,这样在任何使用委托类对象的地方都可以用代理对象替代。代理类负责请求的预 处理、过滤、将请求分派给委托类处理、以及委托类执行完请求后的后续处理。 简单解释: 委托类就是被代理的类。设委托类RealSubject (它实现了Subject接口,add方法在 Subject接口中提供了)有一个方法:add (int a, int b) 如果我们希望add每次执行的时候都在它之前和之后分别加一条语句: System.out.println(Begin adding);和System.out.println(End adding);应该怎么 做呢? 那就写一个类,叫做ProxySubject,同样实现了Subject接口,它也实现了add方法,方 法和RealSubject一样,只不过执行前后分别打印“Begin adding End adding,那么在 请求RealSubject服务的时候,请求ProxySubject就实现了我们想要实现的目的,代理就 是这样的。 代理分为静态代理和动态代理,动态代理就是编译器自动完成代理的过程。 • 静态代理 import java.util.*; import static java.lang.System.*; class ProxyTest { public static void main(String[] args) { out .println(ProxyTest); Subject realSubject = new RealSubject(); //不使用代理 SubjectUser subjectUser = new SubjectUser(3,4,realSubject); //使用代理 Subject proxySubject = ProxyCreater.getInstance (realSubject); subjectUser = new SubjectUser(3,4,proxySubject); } } interface Subject { public int add(int a, int b); } class RealSubject implements Subject { public int add(int a, int b) { return a+b; } 分区Java 的第1 页 } } class ProxySubject implements Subject { private Subject proxied; ProxySubject(Subject proxied) { xied = proxied; } public int add(int a, int b) { out .println(With proxy...); out .println(Begin adding); int c = proxied.add(a, b); out .println(End adding); return c; } } class Pro

文档评论(0)

wyth + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档