java-静态代理
前言:这里我想通过一个结婚的小案例来说明
结婚时很多人可能为了节省自己的时间,通常会请婚庆公司来代理,静态代理的模式就相当于婚庆公司来帮助你结婚一样,虽然是你结婚,但不是什么事都要你做,话不多说上代码.
``
public class StacticProxy {
public static void main(String[] args) {
//创建一个代理角色,并调用有参构造函数
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() {
//结婚前
before();
//结婚时,调用真实角色的结婚函数
this.target.HappyMarry();
//结婚后
after();
}
private void after() {
System.out.println("结婚之后,清理现场");
}
private void before() {
System.out.println("结婚之前,布置现场");
}
}