Java设计模式中的结构型模式(Structural Patterns)关注如何组合类和对象以形成更灵活、可复用的结构,解决的是类或对象的“组合关系”问题。以下将详细讲解代理模式(静态/动态)、适配器模式、装饰器模式的核心思想、实现方式、适用场景,并结合示例说明。
一、代理模式(Proxy Pattern):控制对象的访问
1. 核心思想
代理模式通过一个代理对象间接访问目标对象,在不修改目标对象的前提下,为其添加额外功能(如日志记录、权限校验、延迟加载等)。代理对象与目标对象实现相同的接口,保证行为的一致性。
2. 分类与实现
(1)静态代理
- 实现:手动编写代理类,代理类在编译期确定,直接持有目标对象的引用。
- 优点:逻辑简单,易于理解。
- 缺点:代理类与目标对象一一绑定,扩展性差(新增目标对象需新增代理类)。
适用场景:代理逻辑