5、静态代理模式

5、静态代理模式

/**
* 1、真实对象和代理对象实现同一个接口;
* 2、代理对象,代理真实角色;
*/
public class StaticProxy {
public static void main(String[] args) {
//真实结婚对象
Person person = new Person();
person.HappyMarry();

//通过代理角色调用,WeddingCompany 的构造方法有参数
WeddingCompany weddingCompany = new WeddingCompany(person);
weddingCompany.HappyMarry();

System.out.println("*****************************");
new WeddingCompany(new Person()).HappyMarry();
}
}
interface Marry{
void HappyMarry();
}
//真实角色
class Person implements Marry{
@Override
public void HappyMarry() {
System.out.println("准结婚了");
}
}
//代理角色,》真实目标角色
class WeddingCompany implements Marry{
//准备结婚的人
private Marry target;
//构造方法,Alt+insert, 有参数
public WeddingCompany(Marry target) {
//真实对象
this.target = target;
}

@Override
public void HappyMarry() {
befor();
this.target.HappyMarry();
after();
}
public void befor(){
System.out.println("准备婚礼现场");
}
public void after(){
System.out.println("缴纳婚庆尾款");
}
}

  

 

posted @ 2022-07-13 21:09  颓废且努力奋斗的人  阅读(16)  评论(0)    收藏  举报