代理模式属于三大类设计模式中的【结构型模式】

下面我为您详细解释一下:

1. 设计模式的三大分类

设计模式根据其目的和范围,可以分为三大类:

  • 创建型模式: 关注对象的创建机制,试图以适合情境的方式来创建对象。它们使系统独立于如何创建、组合和表示它的对象。
    • 例子: 单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。
  • 结构型模式: 关注如何将类或对象按某种布局组成更大的结构。它采用继承机制来组合接口或实现,或者通过组合对象来实现新的功能。
    • 例子: 代理模式、适配器模式、装饰器模式、桥接模式、外观模式、组合模式、享元模式。
  • 行为型模式: 关注对象之间的职责分配和通信。它们特别关注对象之间算法的分配和职责的委派。
    • 例子: 观察者模式、策略模式、模板方法模式、责任链模式、命令模式。

2. 为什么代理模式是结构型模式?

代理模式的核心思想是:为一个对象提供一个代理或占位符,以控制对这个对象的访问

它的重点在于“如何组织类和对象的结构”,以达到以下目的:

  • 引入间接层: 在客户端和目标对象之间增加一个代理层。
  • 控制访问: 代理可以控制客户端对真实对象的访问(例如,权限检查、延迟加载)。
  • 增强功能: 代理可以在不修改真实对象代码的前提下,为其增加额外的功能(例如,日志记录、缓存)。

代理模式通过组合(或聚合)的方式,将真实对象包含在代理对象内部,从而在结构上形成了一个“包装”或“代表”的关系。这种通过组合来构建更复杂、更灵活结构的特点,正是结构型模式的典型特征。

3. 一个简单的比喻

想象一下你要拜访一位忙碌的CEO:

  • 真实对象(Real Subject): CEO本人。
  • 代理(Proxy): CEO的助理。
  • 你(Client): 访问者。

助理(代理)站在你和CEO(真实对象)之间。他/她可能会:

  1. (访问控制) 先检查你的预约和身份。
  2. (延迟加载) 如果CEO正在开会,他会让你稍等,而不是直接打扰CEO。
  3. (增强功能) 记录下所有访客的日志。

这个“助理”的角色,就是在你和CEO之间建立的一个结构,它管理着访问的流程。

总结

模式分类 核心关注点 代理模式的符合点
结构型模式 如何组合类和对象以获得更大的结构 通过引入代理类,与真实对象组合,形成一个控制访问的间接层结构。
创建型模式 如何创建对象 代理模式本身不负责创建对象,它只是控制对已存在(或将被创建)对象的访问。
行为型模式 对象间的通信与职责分配 代理模式的主要目的不是定义新的行为或通信流程,而是通过结构来控制访问。

因此,代理模式是结构型模式的典型代表


0 条评论

发表回复

您的电子邮箱地址不会被公开。