代理和真實(shí)角色本身都要實(shí)現(xiàn)同一個(gè)接口,代理對(duì)象要代理真實(shí)角色,好處是代理可以做很多真實(shí)對(duì)象做不了的其他事情,真實(shí)角色只要專注于做自己的事情。但是代理中還是要調(diào)用真實(shí)角色的方法,真正做事情的還是真實(shí)角色。
public class TestStaticProxy {
public static void main(String[] args) {
You you = new You();
WeddingCompany company = new WeddingCompany(you);
company.HappyMarry();
}
}
interface Marry {
void HappyMarry();
}
//真實(shí)角色去結(jié)婚
class You implements Marry {
@Override
public void HappyMarry() {
System.out.println("新婚快樂");
}
}
//代理角色,幫助真實(shí)對(duì)象結(jié)婚
class WeddingCompany implements Marry {
//代理的真實(shí)角色
private Marry marry;
public WeddingCompany(Marry marry) {
this.marry = marry;
}
@Override
public void HappyMarry() {
before();
marry.HappyMarry();//真實(shí)對(duì)象去結(jié)婚
after();
}
private void after() {
System.out.println("收尾款");
}
private void before() {
System.out.println("布置現(xiàn)場(chǎng)");
}
}
學(xué)習(xí)視頻:https://www.bilibili.com/video/BV1V4411p7EF?p=9