从下面的例子可以看到,实现静态代理模式时有三个要素
1.真实角色(委托对象)
2.代理角色
3.共同实现的接口
对比以实现Runnable接口的形式创建多线程,可以发现,代理角色Thread类不需要我们创建,我们只需要写委托对象,实现Runnable接口.把委托对象的引用传递给Thread,借助Thread对象来开启线程即可
public class proxy {
/**
* 1.真实角色
* 2.代理角色
* 3.共同实现的接口
* 模拟runable接口的代理模式
* @param args
*/
public static void main(String[] args) {//多线程中的静态代理模式
//创建真实角色
runable runable1 = new test();
// 创建代理角色,代理角色往往要添加新的方法,不建议直接使用接口创建
Thread company = new Thread(runable1);
company.run();
Thread thread = new Thread(new test());
thread.run();
}
//接口
interface runable{
void run();
}
//真实角色
static class test implements runable{
@Override
public void run() {
System.out.println("干活了");
}
}
//代理角色,需要持有真实角色的引用
static class Thread implements runable{
private runable runable;
public Thread(runable runable1) {
super();
this.runable = runable1;
}
@Override
public void run() {
runable.run();
}
}
}