一,代理
二,案例
放到代码中演示:
首先,创建一个明星接口,这个接口有一个skill方法,说明只要是明星就必须有点技能。
public interface Star {
void skill();
}
然后,创建坤坤对象,实现明星接口
public class GeGe implements Star {
private String name;
public GeGe() {
}
public GeGe(String name) {
this.name = name;
}
@Override
public void skill() {
System.out.println(name+"在唱歌");
System.out.println(name+"在跳舞");
System.out.println(name+"在说唱");
}
接下来,创建经纪人类,来帮助坤坤完成接单和变演完给粉丝送篮球
代理类也有一个保存用户的方法,但是这个方法属于代理类,这个方法不会真的保存用户,而是起到一个过渡作用,其内部有一个真实对象,进行用户保存。
public class StarProxy implements Star {
private Star star;
public StarProxy(Star star) {
this.star = star;
}
@Override
public void skill() {
System.out.println("接受预约");
star.skill();
System.out.println("表演完给粉丝送篮球");
}
}
最后,结婚当天
public class Marry {
public static void main(String[] args) {
GeGe gege = new GeGe("坤坤");
StarProxy starProxy = new StarProxy(gege);
starProxy.skill();
}
}
运行结果:
图解: