java静态代理
静态代理
package com.yuanyu.thread;
public class Demo01 {
//Teacher teacher = new Teacher(new You());
//teacher.HappyStudy();
new Teacher(new You()).HappyStudy();
}
}
interface HappyStudy{
void HappyStudy();
}
//真实角色 我去学习
class You implements HappyStudy{
@Override
public void HappyStudy() {
System.out.println("我在学习java,超开心!");
}
}
//代理角色 帮助我学习
class Teacher implements HappyStudy{
private HappyStudy target;
public Teacher(HappyStudy target) {
this.target = target;
}
@Override
public void HappyStudy() {
before();
this.target.HappyStudy();
after();
}
private void before() {
System.out.println("学习前,要预习");
}
private void after() {
System.out.println("学习后,要写博客");
}
}

静态代理模式总结:
- 真实对象和代理对象都要实现同一个接口
- 代理对象要定义一个真实对象的属性加入构造方法,重写接口方法
- 主线程实例化代理对象传入真实对象的实例化
优点:
- 代理对象可以做很多真实对象做不了的事情
- 真实对象可以专注做好自己的事情
浙公网安备 33010602011771号