代理模式
定义
在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。
在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。
类图
Subject(主体)
定义了是Proxy和RealSubject之间具有一致性的接口。由于存在Subject,所以Client不必在意它所使用的究竟是Proxy还是RealSubject。
Proxy(代理人)
会尽量处理来自Client的请求。只有当自己不能处理时,它才会将工作交给RealSubject。Proxy只有在必要时才会生成RealSubject。Proxy实现了在Subject中定义的接口。
RealSubject(实际的主体)
“本人”RealSubject会在“代理人”Proxy无法胜任工作时出厂。它与Proxy一样,也实现了在Subject中定义的接口。
Client(请求者)
使用Proxy的角色
示例
类图
Printer
1 | public class Printer implements Printable { |
Printable
1 | public interface Printable { |
PrinterProxy
1 | public class PrinterProxy implements Printable { |
Main
1 | public class Main { |