Java多线程(2)
Java多线程
- 本系列博客为学习Java多线程(狂神说)时所做的笔记
静态代理模式
//静态代理模式
public class StacticProxy {
public static void main(String[] args) {
You you = new You();
WeddingCompany weddingCompany = new WeddingCompany(you);
weddingCompany.HappyMarry();
}
}
interface Marry{
void HappyMarry();
}
//真实角色
class You implements Marry{
@Override
public void HappyMarry(){
System.out.println("我要结婚了!");
}
}
//代理角色
class WeddingCompany implements Marry{
private Marry target;
public WeddingCompany(Marry target) {
this.target = target;
}
@Override
public void HappyMarry() {
before();
this.target.HappyMarry();
after();
}
private void after() {
System.out.println("收尾款");
}
private void before() {
System.out.println("结婚之前,布置现场");
}
}
这里是在创建代理对象时,将实体对象传入代理对象的构造函数,于是实体对象就是代理对象的内部类。
实体对象和代理对象都要实现同一个接口。
客户端调用代理对象的方法,而不是调用实体对象的方法。但是调用代理对象的方法的实质,就是调用实体对象的方法,只不过做了一层封装。
代理模式和多线程
这里学习静态代理模式的原因是为了对多线程有一个更好的了解,多线程的Thread实现了Runnable接口,创建它的参数也实现了Runnable接口,所以Thread就是代理对象,传给他的参数对象就是实体对象。

浙公网安备 33010602011771号