23个设计模式之代理模式(1)
来源:互联网 发布:淘宝开店认证怎 编辑:程序博客网 时间:2024/05/17 04:50
/**
* 抽象角色,声明真实对象和代理对象的共同接口
*/
public interface Subject {
public void request();
}
package cn.com.dynamic;
/**
* 真实对象,代理角色所代表的真实对象,是我们最终要引用的对象
* @author admin
*
*/
public class RealSubject implements Subject{
public void request() {
System.out.println("我是真实对象");
}
}
package cn.com.dynamic;
/**
* 代理角色,代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同事代理提供与真实对象相同的接口以便任何时候都能代替真实对象,同时,代理对象
* 可以执行真实对象操作时附加的其他操作,相当于对真实对象进行了封装
*/
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
public class DynamicSubject implements InvocationHandler {
private Object sb;
public DynamicSubject(Object sb) {
this.sb = sb;
}
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
System.out.println("执行前交钱");
method.invoke(sb, args);
System.out.println("执行后交钱");
return null;
}
}
package cn.com.dynamic;
/**
* 客户端使用
*/
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;
public class Client {
public static void main(String[] args) {
RealSubject realSubject = new RealSubject();
InvocationHandler handler = new DynamicSubject(realSubject);
Class<?> classType = handler.getClass();
//下面代码一次性生成代理
Subject subject = (Subject)Proxy.newProxyInstance(classType.getClassLoader(), realSubject.getClass().getInterfaces(), handler);
subject.request();
}
}
- 23个设计模式之代理模式(1)
- 23个设计模式之代理模式(2)动态代理
- 23种设计模式之代理模式
- 23种设计模式之代理模式
- 23设计模式之代理模式(Proxy)
- 23设计模式之代理模式(Proxy)
- 23种设计模式之代理模式
- 23种设计模式之代理模式
- 设计模式之代理模式 java (1)
- 设计模式之代理模式(Proxy)
- 设计模式之代理模式(Proxy)
- 设计模式之Proxy(代理模式)
- 【设计模式】之代理模式(Proxy)
- 设计模式之代理(proxy)模式
- 设计模式之代理模式(待续)
- 设计模式之(Proxy)代理模式
- 设计模式之代理模式(C++)
- 设计模式之代理模式(Proxy)
- winform窗体间传值
- 在linux下eclipse中运行hadoop自带的WordCount例子出现的两个错误
- 上班族20~50岁职业生涯规划术
- SDUTOJ2304
- 大神的博客地址
- 23个设计模式之代理模式(1)
- [CODE]UIUC同学Jia-Bin Huang收集的计算机视觉代码合集
- SVD和PCA
- STL系列之九 探索hash_set
- 给毕业生选择工作的六步建议
- AIX下crontab不执行
- 2013-11-01 实验之足球比赛夺冠模拟(概率公平原理)
- hdu-1715-大菲波数
- [翻译Joel On Software]回归基础/Back to Basics