代理设计模式

1.什么是代理设计模式

  1. 抽象的来讲:为其他对象提供一种代理去控制这个对象的访问

  2. 形象的来讲:就是把你需完成的事,让别人帮你完成,你只需要告诉别人你的需求

  3. 应用场景:安全代理 远程代理 延迟代理

  4. 分类:静态代理、动态代理(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) {
//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客户类

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');
}
}

代理设计模式
http://example.com/2022/04/20/Java初级部分/DesignPattern/代理设计模式/
Author
John Doe
Posted on
April 20, 2022
Licensed under