JavaSE 反射 Part7
来源:互联网 发布:windows 安全 编辑:程序博客网 时间:2024/05/22 06:50
–原作者:尚硅谷-宋红康
静态代理&动态代理
静态代理
interface ClothFactory { void productCloth();}class NikeClothFactory implements ClothFactory { public NikeClothFactory() { } @Override public void productCloth() { System.out.println("Nike's Factory Begin Product Cloth!"); }}class ProxyFactory implements ClothFactory { private ClothFactory cf; public ProxyFactory(ClothFactory cf) { this.cf = cf; } @Override public void productCloth() { System.out.println("方法一:开始执行"); cf.productCloth(); System.out.println("方法二:开始执行"); }}public class ProxyTest { public static void main(String[] args) { NikeClothFactory ncf = new NikeClothFactory(); ProxyFactory pf = new ProxyFactory(ncf); pf.productCloth(); }}
动态代理
public class DynamicProxyTest { public static void main(String[] args) { NikeClothFactory nck = new NikeClothFactory(); MyInvocationHandler mih = new MyInvocationHandler(); ClothFactory cf = (ClothFactory) mih.getProxy(nck); cf.productCloth(); }}class MyInvocationHandler implements InvocationHandler { // 被代理类的对象 private Object obj; // 给被代理类对象赋值,并创建代理类的对象 public Object getProxy(Object obj) { this.obj = obj; return Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj.getClass().getInterfaces(), this); } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println("方法一:开始执行!"); // 执行被代理类方法 Object executeResult = method.invoke(obj, args); System.out.println("方法二:开始执行!"); return executeResult; }}
阅读全文
0 0
- JavaSE 反射 Part7
- part7
- javaSE-反射
- [JavaSE]反射
- JavaSE学习笔记--反射
- JavaSE基础:反射机制
- javaSE之反射
- JavaSE 反射Reflection初学
- JavaSE 反射机制
- JavaSE 反射 (进阶)
- JavaSE 反射技术
- JavaSE学习--反射
- JavaSe——反射
- 黑马程序员-javase-反射
- JavaSE增强之反射
- JavaSE-反射机制
- JavaSE反射机制-笔记
- 【javase复习】## 反射 ##
- set serveroutput on 命令
- DB2小知识
- linux如何杀死可以自动启动的程序
- js对手机软键盘的监听
- 从键盘中输入一个整数n,求1-n的和,以及偶数和、奇数和
- JavaSE 反射 Part7
- hashmap的实现原理
- jeeplus 阅读总结
- linux操作DB2小知识
- 正则表达式获取中括号里面的内容
- js常遇问题总结
- 欢迎使用CSDN-markdown编辑器
- 图片、文本、音视频和应用文件托管必备利器-神箭手文件云托管服务
- Angular2使用ng2-file-upload上传文件