要求: 被代理对象和代理对象都要实现同一个接口
好处: 代理对象可以做很多被代理对象做不了的事情,被代理对象只专注做自己的事情
// 静态代理测试
public class StaticProxy {
public static void main(String[] args) {
// new 一个婚庆公司(代理对象),将被代理对象丢入
new WeddingCompany(new You()).HappyMarry();
// new Thread(() -> {System.out.println("静态代理模式");}).start();
}
}
// 结婚
interface Marry{
void HappyMarry();
}
// 真实的角色(被代理类)
class You implements Marry{
@Override
public void HappyMarry() {
System.out.println("你结婚很开心:)");
}
}
// 婚庆公司 (代理类)
class WeddingCompany implements Marry{
// 被代理目标角色
private Marry target;
public WeddingCompany(Marry target){
this.target = target;
}
@Override
public void HappyMarry() {
// 结婚前
this.before();
// 结婚时(被代理对象需要执行的方法)
this.target.HappyMarry();
// 结婚后
this.after();
}
// 结婚之前
private void before() {
System.out.println("布置结婚现场");
}
//结婚之后
private void after() {
System.out.println("收拾现场");
}
}
完执行结果:
布置结婚现场
你结婚很开心:)
收拾现场
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)