易截截图软件、单文件、免安装、纯绿色、仅160KB

JAVA动态代理内部实现


JAVA动态代理内部实现
一 代理设计模式
代理模式为目标对象提供一种代理以控制对实际对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
为了保持行为的一致性,代理类和实际委托类通常会实现相同的接口,所以在访问者看来两者没有丝毫的区别。

 代理模式类图  
常见的代理有:
1) 远程代理(Remote proxy):对一个位于不同的地址空间对象提供一个局域代表对象,如RMI中的stub。 
2) 虚拟代理(Virtual proxy):根据需要将一个资源消耗很大或者比较复杂的对象,延迟加载,在真正需要的时候才创建。
3) 保护代理(Protect or Access Proxy):控制对一个对象的访问权限。
4) 智能引用(Smart Reference Proxy):提供比目标对象额外的服务和功能。
通过代理类这一中间层,能够有效控制对实际委托类对象的直接访问,也可以很好地隐藏和保护实际对,实施不同的控制策略,从而在设计上获得了更大的灵活性。
二 动态代理使用
JAVA动态代理机制以巧妙的方式实现了代理模式的设计理念。

动态代理类图
动态代理在代理ProxySubject和RealSubject之间增加了InvocationHandler,这是一种通信间接化, 增加了灵 性性,例如可以把这个中间层实现为一个框架Framework,直接通过xml文件等方式来调用RealSubject。
在普通的设计中,我们一般不会使用动态代理。但是在一些框架结构设计中,动态代理非常重要,如RMI,EJB中都使用动态代理。
view plaincopy to clipboardprint?
interface Subject   
{   
  public void doSomething();   
}   
class RealSubject implements Subject   
{   
  public void doSomething()   
  {   
    System.out.println( "call doSomething()" );   
  }   
}   
class ProxyHandler implements InvocationHandler   
{   
  private Object proxied;   
     
  public ProxyHandler( Object proxied )   
  { &n


相关文档:

2009年的Java技术发展趋势展望


已经有14岁的Java在日新月异的IT技术领域内不算年轻,但它一直没有停下变革,创新的脚步。Java已经不单单是一种计算机语言,很多情况下,我们称它是一个平台,一个社区,以及一个生态系统。下面从Java SE, Java EE, Java ME, JavaFX几个方面,简要介绍一下Java技术在2009年的变化和趋势。
JavaSE
目前JDK的正式版本是JD ......

jct 模板通过json 从java 之间得到值的一个简单例子

0.本例子是基于jQuery的
1.引入jct包
<!-- 引入jct包 -->
<script type="text/javascript" src="${ctx }/js/jct.js"></script>
<script type="text/javascript" src="${ctx }/js/dateutils.js"></script>
2.通过ajax 传递参数给java
 &n ......

用Java写爬网页的小工具

其实也不是爬网页,只是从一个XML文件取URL,然后抓取网页内容。
主要有几点,备忘:
1. 全局代理,设置之后所有的URL都使用此代理,这样可以直接调用FileUtils.copyURLToFile:
private void initProxy(String host, int port,
final String username, final String password) {
Authenticator.setDefault(new Aut ......

java数据库连接


MySQL:
String Driver="com.mysql.jdbc.Driver"; //驱动程序
String URL="jdbc:mysql://localhost:3306/db_name"; //连接的URL,db_name为数据库名
String Username="username"; //用户名
String Password="password"; //密码
Class.forName(Driver).new Instance();
......

java语言SUN公司标准编码规范

Java语言编码规范(Java Code Conventions)SUN标准
 
 
1 介绍(Introduction)1.1 为什么要有编码规范(Why Have Code Conventions)1.2 版权声明(Acknowledgments)2 文件名(File Names)2.1 文件后缀(File Suffixes)2.2 常用文件名(Common File Names)3 文件组织(File Organization)3.1 Java源文件(Java Source Fi ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号