静态代理:
- 静态代理中,代理类和被代理类在编译期间确定下来,一个代理类只能为一个被代理类服务.
有一个电影厂家(接口)邀请艺人唱主题曲(sing方法),先需要找到艺人的经纪人(代理类),才能与艺人(被代理类)进行合作.
//电影厂家
interface Company {
void sing();
}
//周杰伦
class Zhoujielun implements Company {
@Override
public void sing() {
System.out.println("周杰伦唱的歌很好听");
}
}
//周杰伦经纪人
class AgentZhou implements Company{
private Company singer;
public AgentZhou(Company singer) {
this.singer = singer;
}
@Override
public void sing() {
System.out.println("周杰伦经纪人讨论一些唱歌之前的准备工作");
singer.sing();
System.out.println("周杰伦经纪人做唱歌后的收尾工作");
}
}
public class Test {
public static void main(String[] args) {
AgentZhou zhou = new AgentZhou(new Zhoujielun());
zhou.sing();
}
}