Java SE 065 静态代理模式深度剖析

Java SE 065 静态代理模式深度剖析

ID:40313940

大小:21.22 KB

页数:4页

时间:2019-07-30

Java SE 065 静态代理模式深度剖析_第1页
Java SE 065 静态代理模式深度剖析_第2页
Java SE 065 静态代理模式深度剖析_第3页
Java SE 065 静态代理模式深度剖析_第4页
资源描述:

《Java SE 065 静态代理模式深度剖析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、JavaSE065静态代理模式深度剖析一、“Class”class众所周知Java有个Objectclass,是所有Javaclassses的继承根源,其内声明了数个应该在所有Javaclass中被改写的methods:hashCode()、equals()、clone()、toString()、getClass()等。其中getClass()返回一个Classobject.Classclass十分特殊。它和一般classes一样继承自Object,其实体用以表达Java程序运行时的classes和interfaces,也用来表达enum、array、primitiveJavatyp

2、es(原生java类型,boolean,byte,char,short,int,long,float,double)以及关键词void。当一个class被加载,或当加载器classloader的defineClass()被jvm调用,JVM会自动产生一个Classobject。如果你想借由“修改java标准库源码”来观察Classobject的实际生成时机(例如在Class的constructor内添加一个println()),不能够!因为Class并没有publicconstructor.Class是Refelection起源。针对任何你想探堪的class,唯有先为它产生一个Cla

3、ssobject,接下来才能经由后者唤起为数十多个的ReflectionAPIs.二、”Class”object的取得途径java允许我们从多种途径为一个class生成对应的Classobject。Classobject诞生管道示例运用getClass()注:每个class都有此函数Stringstr=”abc”;Classc1=str.getClass();运用Class.getSuperclass()Buttonb=newButton();Classc1=b.getClass();Classsc2=c1.getSuperclass();运用staticmethodClass.fo

4、rName();(最常被使用)Classc1=Class.forName(“java.lang.String”)Classc2=Class.forName(“java.awt.Button”);Classc3=Class.forName(“java.util.LinkedList$Entry”);Classc4=Class.forName(“I”);Classc5=Class.forName(“[I”);运用.class语法Classc1=String.classClassc2=java.awt.Button.classClassc3=Main.InnerClass.classCla

5、ssc4=int.classClassc5=int[].class运用primitivewrapperclasses的TYPE语法Classc1=Boolean.TypeClassc2=Byte.TYPEClassc3=Character.TYPEClassc4=Short.TYPEClassc5=Integer.TYPEClassc6=Long.TYPEClassc7=Float.TYPE;Classc8=Double.TYPEClassc9=Void.TYPE三、代理模式(房屋中介租房)代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者

6、不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式一般涉及的角色有抽象角色(租房子):声明真实对象和代理对象的共同接口代理角色(中介):代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能代替真实对象。同时,代理对象可以在执行真实对象操作时,附加其他的操作,相当于对真实对象进行封装真实角色(房主):代理角色所代表的真实对象,是我们要最终要引用的对象。packagecom.javase.proxy;/***代理模式抽象角色*代理角色与真实角色所拥有的共同接口。*@authorx_xiongj

7、ie**/publicabstractclassSubject{publicabstractvoidrequest();}packagecom.javase.proxy;/***真实角色*房主*@authorx_xiongjie**/publicclassRealSubjectextendsSubject{@Overridepublicvoidrequest(){System.out.println("Fromrealsubject!");}}packag

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。