代理模式
定义
代理模式是一种设计模式,它通过代理对象来间接地访问目标对象,通常用于提供额外的控制、性能优化、日志记录等功能。
组成部分
1.Subject(抽象主题类)
声明了目标对象和代理对象的共同接口,这样客户端就可以使用代理来代替目标对象。
2.RealSubject(真实主题类)
定义了代理类所代表的真实对象。
3.Proxy(代理类)
持有对真实主题对象的引用,负责在需要时创建并使用真实主题对象。
结构形式
代理类和真实对象类均实现相同的接口或继承相同的抽象类,代理类将对真实对象的访问进行控制。
分类
1.远程代理(Remote Proxy):为位于不同地址空间的对象提供本地代表。
2.虚代理(Virtual Proxy):根据需要创建开销很大的对象,通过代理控制对真实对象的访问。
3.保护代理(Protection Proxy):控制对原始对象的访问,主要用于对象有不同访问权限时。
4.智能引用(Smart Reference):在访问对象时执行一些附加操作,例如计数、日志记录等。
目的
控制访问真实对象或在访问前后增加额外的操作。
基本原理
通过在真实对象前增加一层代理对象,将直接访问真实对象的行为封装起来,以便可以在访问行为中添加额外的操作。模式
定义
代理模式是一种设计模式,它通过代理对象来间接地访问目标对象,通常用于提供额外的控制、性能优化、日志记录等功能。
组成部分
1.Subject(抽象主题类)
声明了目标对象和代理对象的共同接口,这样客户端就可以使用代理来代替目标对象。
2.RealSubject(真实主题类)
定义了代理类所代表的真实对象。
3.Proxy(代理类)
持有对真实主题对象的引用,负责在需要时创建并使用真实主题对象。
结构形式
代理类和真实对象类均实现相同的接口或继承相同的抽象类,代理类将对真实对象的访问进行控制。
分类
1.远程代理(Remote Proxy):为位于不同地址空间的对象提供本地代表。
2.虚代理(Virtual Proxy):根据需要创建开销很大的对象,通过代理控制对真实对象的访问。
3.保护代理(Protection Proxy):控制对原始对象的访问,主要用于对象有不同访问权限时。
4.智能引用(Smart Reference):在访问对象时执行一些附加操作,例如计数、日志记录等。
目的
控制访问真实对象或在访问前后增加额外的操作。
基本原理
通过在真实对象前增加一层代理对象,将直接访问真实对象的行为封装起来,以便可以在访问行为中添加额外的操作。