1.什么是代理设计模式
-
抽象的来讲:为其他对象提供一种代理去控制这个对象的访问
-
形象的来讲:就是把你需完成的事,让别人帮你完成,你只需要告诉别人你的需求
-
应用场景:安全代理 远程代理 延迟代理
-
分类:静态代理、动态代理(JDK自带具体体现在反射)
2.案例演示
典型案例:你点了外卖,外卖小哥帮你送到你家,你(被代理),外卖小哥(代理人)
基于Java接口部分实现的一个小测试
2.1测试类
public class MeituanTest {
public static void main(String[] args) {
//new Horseman里面就是多态(MtDaily daily = new Customer())
Horseman horseman = new Horseman(new Customer());
//最终输出是Customer的语句
horseman.mtFood();
//骑手配送
Horseman.HorDo();
//客户点评,开吃
Customer.cusDo();
}
}
interface MtDaily {
void mtFood();
}
2.2客户类
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骑手类
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');
}
}