代理设计模式与其与装饰模式的区别
发布时间
阅读量:
阅读量
文章结构概览
- 一、代理设计模式
-
- 构成要素
- 类型划分
- 静态代理的UML架构图
- 静态代理模式的实例演示
- 静态代理存在的限制
- 动态代理机制
- 动态代理的UML架构图
- 进一步思考
-
二、装饰设计模式
-
三、两者之间的异同点
-
一、代理设计模式
组成
代理模式由以下几个组成部分构成:
- Subject:抽象角色。该角色通过接口或抽象类的形式,对真实角色所执行的业务方法进行声明。
- Proxy:代理角色。该角色实现抽象角色所定义的接口,作为真实角色的代理存在,其通过调用真实角色的业务逻辑方法来完成抽象方法的实现,并可在其中加入自身特有的操作。
- RealSubject:真实角色。该角色实现抽象角色所声明的接口,具体定义并实现真实角色应完成的业务逻辑,供代理角色进行调用。
分类
代理机制主要划分为静态代理与动态代理两类,其中静态代理需依据提供的UML类图自行编码实现,且其代理关系在编译阶段即被确定。相比之下,Java语言则通过反射包中的DynamicProxy类提供了动态代理的支持,借助Proxy类能够在程序运行时灵活地完成代理功能。
静态代理UML结构图
