静态代理_代理演示结婚,婚庆公司案例
package com.qiliang.demo05_静态代理;
// 代码演示结婚,婚庆公司案例
public class StaticProxy {
public static void main(String[] args) {
// 结婚对象
You you = new You();
you.HappyMarry(); // 本来这样执行结婚的方法
// 现在不这样执行 , 把"你"给婚庆公司
// 创建代理对象
WeddingCompany weddingCompany = new WeddingCompany(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 before() {
System.out.println("结婚之前布置现场");
}
private void after() {
System.out.println("结婚之后收尾款");
}
}
/*
静态代理模式总结:
真实对象和代理对象都要实现同一个接口
代理对象要代理真实角色
好处:代理对象可以做很多真实对象做不了的事情
真实对象专注做自己的事情
*/
唯有努力,人生没有白走的路,每一步都算数