在代理模式(Proxy Pattern)中,一個類代表另一個類的功能。這種類型的設(shè)計模式屬于結(jié)構(gòu)型模式。
在代理模式中,我們創(chuàng)建具有現(xiàn)有對象的對象,以便向外界提供功能接口。
更多內(nèi)容可以參考菜鳥教程:代理模式 | 菜鳥教程
代理模式:接口 + 真實實現(xiàn)類 + 代理類
找人幫忙,求人辦事,就是代理。下面用找朋友幫忙買辣條為例
一、靜態(tài)代理
創(chuàng)建接口
public interface BuySpicy {
public void buy();
}
創(chuàng)建真實實現(xiàn)類
public class Shopowner implements BuySpicy {
public void takeSpicy() {
System.out.println("店長到辣條生產(chǎn)廠家去進貨。。。");
}
public void buy() {
takeSpicy();
System.out.println("店長買到辣條");
sellSpicy();
}
public void sellSpicy() {
System.out.println("店長正在零售。。。");
}
}
創(chuàng)建代理類
public class Friend implements BuySpicy {
private BuySpicy buySpicy;
public Friend(BuySpicy buySpicy) {
this.buySpicy = buySpicy;
}
public void goShopping() {
System.out.println("朋友正在去商店。。。");
}
public void buySpicyStrips() {
goShopping();
buySpicy.buy();
delivery();
}
public void delivery() {
System.out.println("朋友買到辣條正在去送給吃貨。。。");
}
}
創(chuàng)建測試類
public class BuySpicyTest {
public static void main(String[] args) {
BuySpicy buy = new Friend(new Shopowner());
buy.buy();
}
}
控制臺打印

在這里插入圖片描述
辣條到手,吃辣條去~~