诠释了Thread线程作为代理对象的底层原理
/**
* 静态代理模式
*/
public class StaticProxy {
public static void main(String[] args) {
new PersonPoxy(new Person()).Happy();
new Thread(()-> System.out.println("我爱线程")).start();
// new Thread(new Runnable() {
// @Override
// public void run() {
// System.out.println("Runnable线程");
// }
// }).start();
}
}
interface Marry{
void Happy();
}
class Person implements Marry{
@Override
public void Happy() {
System.out.println("我要结婚啦");
}
}
/**
* 代理对象
*/
class PersonPoxy implements Marry{
private Person person;
public PersonPoxy(Person person){
this.person=person;
}
@Override
public void Happy() {
after();
this.person.Happy();
before();
}
void after(){
System.out.println("结婚前");
}
void before(){
System.out.println("结婚后");
}
}
纯属个人经验,喜欢的可以点赞关注,后续见!!!