一,代理

二,案例
放到代码中演示:
首先,创建一个明星接口,这个接口有一个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();
    }
}
 运行结果:

图解:




![Cytoscape软件下载、安装、插件学习[基础教程]](https://img-blog.csdnimg.cn/img_convert/39ad45a79edcb1e950eeb21a7c6164bf.png)















