静态代理模式
你:真是角色
婚庆公司:代理你,帮你处理结婚的事
结婚:都实现结婚接口即可
package com.daiyi;
//静态代理模式
/**
* 总结:
* 真实对象和代理对象都要实现同一个接口
* 代理对象要代理真实角色
*
* 好处:
* 代理对象可以做很多真实对象做不了的事情
* 真实对象专注做自己的事情
* */
public class StaticProxy {
public static void main(String[] args) {
new Thread(()-> System.out.println("我爱你")).start();
//你自己结婚
You you = new You();
you.HappyMarry();
//用代理帮你结婚
WeddingCompany weddingCompany = new WeddingCompany(new You());
weddingCompany.HappyMarry();
}
}
//结婚接口
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() {
after();
this.target.HappyMarry();
before();
}
//代理方法:结婚之前
private void after() {
System.out.println("结婚之前,布置现场");
}
//代理方法:结婚之后
private void before() {
System.out.println("结婚之后,收尾款");
}
}
努力学习全靠自己

浙公网安备 33010602011771号