此处以婚庆公司帮你完成结婚比喻代理,WeddingCompany和You都实现了Marry接口,在WeddingCompany的构造器中将You作为参数target传入,在实现接口方法的过程中,代为实现You的接口中的方法。
public class StaticProxy {
public static void main(String[] args) {
new WeddingCompany(new You()).HarryMarry();
}
}
interface Marry{
void HarryMarry();
}
class You implements Marry{ //真实对象
@Override
public void HarryMarry() {
System.out.println("举行婚礼");
}
}
class WeddingCompany implements Marry{ //代理,帮助你结婚
private Marry target; //代理目标
public WeddingCompany(Marry target) {
this.target = target;
}
@Override
public void HarryMarry() {
before(); //前置工作
this.target.HarryMarry(); //真实对象的工作
after(); //后置工作
}
private void before() {
System.out.println("结婚前准备工作");
}
private void after() {
System.out.println("结婚后善后工作");
}
}
原文:https://www.cnblogs.com/zzzstudy/p/14613978.html