我使用Runnble接口实现多线程的时候,启动多线程的时候必须借助Thread对象,我们把Thread对象称为代理对象,这个代理是静态代理。取个例子比如结婚,你结婚但是婚庆公司搞婚庆。
案例:
package com.cb.thread;
/*
* 静态代理
* 接口:
* 1.真实角色
* 2.代理角色
*/
public class StaticProxy {
public static void main(String[] args) {
new WeddingCompany(new You()).happyMarry();
//new Thread(线程对象).start();
}
}
//结婚
interface Marry{
void happyMarry();
}
//真实角色
class You implements Marry{
@Override
public void happyMarry() {
System.out.println("you and 嫦娥终于奔月了。。。");
}
}
//代理角色
class WeddingCompany implements Marry{
//真实角色
private Marry target;
public WeddingCompany(Marry target){
this.target = target;
}
@Override
public void happyMarry() {
ready();
this.target.happyMarry();
after();
}
private void after() {
System.out.println("布置猪窝。。。。。");
}
private void ready() {
System.out.println("闹玉兔。。。。。。");
}
}
看这二句代码是不是很像
new WeddingCompany(new You()).happyMarry();
new Thread(线程对象).start();
这就是静态代理,以后用于记录日志,比如谁登录了谁退出了,都可以记录下来。