设计模式之-结构型-代理模式
# 概述
代理模式是一种结构性设计模式,它提供了一个代理类,通过该代理类来控制对其他对象的访问。代理可以在客户端和目标对象之间起到中介的作用,增强、延迟或限制对目标对象的访问。
# 角色
代理模式的主要组成部分有:
- Subject:抽象角色,定义了真实主题和代理主题的共同接口。
- RealSubject:真实角色,代表真实的对象。
- Proxy:代理角色,包含对真实角色的引用,并实现了与真实角色相同的接口。
# 使用场景
- 远程代理:控制对网络资源的访问。
- 虚拟代理:延迟加载,只有在需要时才创建真实对象。
- 保护代理:控制对真实对象的访问,添加权限控制。
# 代码示例
// Subject接口
interface Subject {
void request();
}
// RealSubject类
class RealSubject implements Subject {
@Override
public void request() {
System.out.println("RealSubject: Handling request.");
}
}
// Proxy类
class Proxy implements Subject {
private RealSubject realSubject;
public Proxy(RealSubject realSubject) {
this.realSubject = realSubject;
}
@Override
public void request() {
System.out.println("Proxy: Pre-processing request.");
realSubject.request();
System.out.println("Proxy: Post-processing request.");
}
}
// 客户端代码
public class Client {
public static void main(String[] args) {
RealSubject realSubject = new RealSubject();
Proxy proxy = new Proxy(realSubject);
proxy.request();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# 总结
代理模式通过引入代理角色,增强了对真实对象的控制,提高了系统的灵活性。它在大型应用程序中广泛应用,例如资源管理、安全控制等场景。理解和掌握代理模式对软件开发人员而言,具有重要的意义。
最后更新时间: 2024/12/26, 17:56:54