在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。
在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。
更多内容可以参考菜鸟教程:代理模式 | 菜鸟教程
代理模式:接口 + 真实实现类 + 代理类
找人帮忙,求人办事,就是代理。下面用找朋友帮忙买辣条为例
一、静态代理
创建接口
public interface BuySpicy {
public void buy();
}
创建真实实现类
public class Shopowner implements BuySpicy {
public void takeSpicy() {
System.out.println("店长到辣条生产厂家去进货。。。");
}
public void buy() {
takeSpicy();
System.out.println("店长买到辣条");
sellSpicy();
}
public void sellSpicy() {
System.out.println("店长正在零售。。。");
}
}
创建代理类
public class Friend implements BuySpicy {
private BuySpicy buySpicy;
public Friend(BuySpicy buySpicy) {
this.buySpicy = buySpicy;
}
public void goShopping() {
System.out.println("朋友正在去商店。。。");
}
public void buy() {
goShopping();
buySpicy.buy();
delivery();
}
public void delivery() {
System.out.println("朋友买到辣条正在去送给吃货。。。");
}
}
创建测试类
public class BuySpicyTest {
public static void main(String[] args) {
BuySpicy buy = new Friend(new Shopowner());
buy.buy();
}
}
控制台打印
辣条到手,吃辣条去~~