代理和真实角色本身都要实现同一个接口,代理对象要代理真实角色,好处是代理可以做很多真实对象做不了的其他事情,真实角色只要专注于做自己的事情。但是代理中还是要调用真实角色的方法,真正做事情的还是真实角色。
public class TestStaticProxy {
public static void main(String[] args) {
You you = new You();
WeddingCompany company = new WeddingCompany(you);
company.HappyMarry();
}
}
interface Marry {
void HappyMarry();
}
//真实角色去结婚
class You 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();
marry.HappyMarry();//真实对象去结婚
after();
}
private void after() {
System.out.println("收尾款");
}
private void before() {
System.out.println("布置现场");
}
}
网友评论