概述:这种设计模式比较简单,简单举个例子,我想要吃早点,但是了我又不想起床自己去买,怎么办了?这时候我的好基友的作用就体现出来了,我叫他帮我去买,这个好基友了其实就是充当的代理的身份,他代替我去帮我买早餐。

 

具体实例:

package home.yhs.design;

public class ProxyDesignTest {
    public static void main(String args[]){
        Me me = new Me("想吃早饭但是自己又不想买");
        
        Friend proxy = new Friend(me);//通过构造方法告诉朋友我想吃早饭这个消息
        
        proxy.buyBreakfeast();//朋友帮我买早饭
    }
}

interface Breakfeast {
    public void buyBreakfeast();
}

class Me implements Breakfeast {
    Me(String str){
        
    }

    @Override
    public void buyBreakfeast() {
        System.out.println("买早餐");
    }
}
//朋友就相当于代理
class Friend implements Breakfeast {

    private Me me;

    Friend(Me me) {
        this.me = me;
    }

    @Override
    public void buyBreakfeast() {
        System.out.print("朋友帮我");
        me.buyBreakfeast();
    }
}

注意:该模式需要注意的就一点,代理类(Friend)里面需要包含委托类的引用