1.什么是代理设计模式
抽象的来讲:为其他对象提供一种代理去控制这个对象的访问
形象的来讲:就是把你需完成的事,让别人帮你完成,你只需要告诉别人你的需求
应用场景:安全代理 远程代理 延迟代理
分类:静态代理、动态代理(JDK自带具体体现在反射)
2.案例演示
典型案例:你点了外卖,外卖小哥帮你送到你家,你(被代理),外卖小哥(代理人)
基于Java接口部分实现的一个小测试
2.1测试类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| public class MeituanTest { public static void main(String[] args) { Horseman horseman = new Horseman(new Customer()); horseman.mtFood(); Horseman.HorDo(); Customer.cusDo();
} } interface MtDaily { void mtFood(); }
|
2.2客户类
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| class Customer implements MtDaily { final String name = "吕威"; @Override public void mtFood() { System.out.println(name+"点了美团外卖"); }
public static void cusDo(){ System.out.println("答谢骑手5星好评"); System.out.println("打开美团外卖开始吃"); } }
|
2.3骑手类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| class Horseman implements MtDaily {
private MtDaily daily;
public Horseman(MtDaily daily){ this.daily = daily; }
@Override public void mtFood() { daily.mtFood(); }
public static void HorDo(){ System.out.println("骑手已接单"); System.out.println("骑手配送中"+'\n'); } }
|