* 代理模式:
* 代理:就是让别人替自己完成事情!
*
* 静态代理:(Thread类本身就用到了静态代理 Thread implements Runnable
* 开发中:自定义了一个类 实现Runnable接口
* )
*
* 真实角色: 只专注自己的事情
* 代理角色:帮助真实角色完成不了的事情!
*
* 特点:
* 真实角色和代理角色都需要去实现相关的接口(必须是同一个接口)!
* 代理角色重写接口中的方法是对真实角色的方法进行了增强(扩展)!
*
*
* 动态代理:
* JDK动态代理
* cglib动态代理
*
* 静态代理
* 结婚这件事情:
* 1)自己去操办
* 2)找一个机构(婚庆公司WeddingCompany)
*
public class Test {
public static void main(String[] args) {
//测试接口多态
Marry m = new You() ;
m.marry();
System.out.println("------------------");
You you = new You() ; //----->自定义了一个类(真实角色) 实现了Runnable接口
// Marry m2 = new WeddingCompany(you) ;
WeddingCompany wc = new WeddingCompany(you) ;// 类似于---->Thread(代理角色) t1 = new Thread(资源类对象) ;
wc.marry(); //类似于--->线程启动 t1.start()
}
}
//定义一个结婚的接口
interface Marry{
//结婚
void marry() ;
}
//自己 :真实角色
class You implements Marry{
@Override
public void marry() {
System.out.println("结婚了,很开心...");
}
}
//婚庆公司:代理角色
class WeddingCompany implements Marry{
private You you ;
public WeddingCompany(You you) {
this.you = you ;
}
@Override
public void marry() {
System.out.println("婚庆公司布置婚庆现场...");
you.marry();
System.out.println("男方需要付尾款...");
}
}



