静态代理:真实的对象和代理的对象都要实现同一个接口
代理对象要代理真实的对象。
好处:代理对象可以做真实对象做不了的事情,真实对象只需要完成自己该完成的事情。
举例:婚庆公司代理婚庆事务
public class Wedding {
public static void main(String[] args) {
new WeddingCompany(new You()).happyMarry();
}
}
interface Marry{
void happyMarry();
}
class You implements Marry{
public void happyMarry() {
System.out.println("小明和小红结婚了");
}
}
class WeddingCompany implements Marry{
private Marry target;//目标客户
public WeddingCompany (Marry target){
this.target=target;
}
public void happyMarry() {
before();
this.target.happyMarry();
after();
}
private void after() {
System.out.println("收尾款");
}
private void before() {
System.out.println("布置现场");
}
}