静态代理模式
package com.example.demon;
public class StaticProxy {
public static void main(String[] args) {
WeddingCompany weddingCompany = new WeddingCompany(new You());
weddingCompany.HappyMarry();
System.out.println("-------------------------------------------------");
new WeddingCompany(new Ta()).HappyMarry();
new Thread(() -> {
System.out.println(123);
System.out.println(456);
}).start();
new Thread(new Runnable() {
@Override
public void run() {
System.out.println(123);
}
}).start();
}
}
interface Marry {
void HappyMarry();
}
class You implements Marry {
@Override
public void HappyMarry() {
System.out.println("你(张三)要结婚了");
}
}
class Ta implements Marry {
@Override
public void HappyMarry() {
System.out.println("他(李四)要结婚了");
}
}
class WeddingCompany implements Marry {
private Marry marry;
public WeddingCompany(Marry marry) {
this.marry = marry;
}
@Override
public void HappyMarry() {
before();
this.marry.HappyMarry();
after();
}
private void after() {
System.out.println("结婚之后收尾款");
}
private void before() {
System.out.println("结婚前婚庆公司帮忙布置现场");
}
}