1、2各类都实现同一个接口;
2、代理类可以完成雇主类交待的任务;
package thread;
public class StaticProxy {
public static void main(String[] args) {
You you = new You();
new Thread(()-> System.out.println("I love you ! ")).start();
//new WeddingCompany(new You()).HappyMarry();
WeddingCompany weddingCompany = new WeddingCompany(you);
weddingCompany.HappyMarry();
}
}
interface Marry{
void HappyMarry();
}
//雇主类
class You implements Marry{
@Override
public void HappyMarry() {
System.out.println("So happy ");
}
}
//代理类
class WeddingCompany implements Marry{
private Marry target;
public WeddingCompany (Marry target){
this.target=target;
}
@Override
public void HappyMarry() {
before();
this.target.HappyMarry();
System.out.println("Proxy.");
after();
}
private void after() {
System.out.println("after: give me the money ! ");
}
private void before() {
System.out.println("before: party");
}
}