结构型模式(上)

上传人:奇异 文档编号:24239355 上传时间:2021-06-25 格式:PPT 页数:27 大小:2.04MB
返回 下载 相关 举报
结构型模式(上)_第1页
第1页 / 共27页
结构型模式(上)_第2页
第2页 / 共27页
结构型模式(上)_第3页
第3页 / 共27页
点击查看更多>>
资源描述
第4章 结构型模式(上)作 者 : 程 细 柱韶关学院信息科学与工程学院 内容简介 本章教学目标:了解结构型模式的特点与分类;理解代理模式、适配器模式、桥接模式的定义与特点;掌握代理模式、适配器模式、桥接模式的结构与实现;学会使用这三种设计模式开发应用程序;明白这三种设计模式的扩展应用。 本章重点内容:结构型模式的定义、特点和分类方法;代理模式的特点、结构、应用场景与应用方法;适配器模式的特点、结构、应用场景与应用方法;桥接模式的特点、结构、应用场景与应用方法。 软件设计模式(Java版)、 作者:程细柱销售电话:010-81055256人民邮电出版社( 和 ) 4.1 结构型模式概述 结 构 型 模 式 描 述 如 何 将 类 或 对 象 按 某 种 布 局 组 成 更 大 的 结 构 。 它 分 为 类 结 构 型模 式 和 对 象 结 构 型 模 式 , 前 者 采 用 继 承 机 制 来 组 织 接 口 和 类 , 后 者 采 用 组 合 或聚 合 来 组 合 对 象 。 由 于 组 合 关 系 或 聚 合 关 系 比 继 承 关 系 耦 合 度 低 , 满 足 “ 合 成复 用 原 则 ” , 所 以 对 象 结 构 型 模 式 比 类 结 构 型 模 式 具 有 更 大 的 灵 活 性 。 结 构 型 模 式 分 为 以 下 7种 : 代 理 ( Proxy) 模 式 : 为 某 对 象 提 供 一 种 代 理 以 控 制 对 该 对 象 的 访 问 。 即客 户 端 通 过 代 理 间 接 地 访 问 该 对 象 , 从 而 限 制 、 增 强 或 修 改 该 对 象 的 一 些 特 性 。 适 配 器 ( Adapter) 模 式 : 将 一 个 类 的 接 口 转 换 成 客 户 希 望 的 另 外 一 个 接口 , 使 得 原 本 由 于 接 口 不 兼 容 而 不 能 一 起 工 作 的 那 些 类 能 一 起 工 作 。 桥 接 (Bridge)模 式 : 将 抽 象 与 实 现 分 离 , 使 他 们 可 以 独 立 的 变 化 。 它 是 用组 合 关 系 代 替 继 承 关 系 来 实 现 , 从 而 降 低 了 抽 象 和 实 现 这 2个 可 变 维 度 的 耦 合 度 。 软件设计模式(Java版)、 作者:程细柱销售电话:010-81055256人民邮电出版社( 和 ) 4.1 结构型模式概述(续) 装 饰 (Decorator)模 式 : 动 态 的 给 对 象 增 加 一 些 职 责 , 即 增 加 其额 外 的 功 能 。 外 观 (Facade)模 式 : 为 多 个 复 杂 的 子 系 统 提 供 一 个 一 致 的 接 口 ,使 这 些 子 系 统 更 加 容 易 被 访 问 。 享 元 (Flyweight)模 式 : 运 用 共 享 技 术 来 有 效 地 支 持 大 量 细 粒 度对 象 的 复 用 。 组 合 (Composite)模 式 : 将 对 象 组 合 成 树 状 层 次 结 构 , 使 用 户 对单 个 对 象 和 组 合 对 象 具 有 一 致 的 访 问 性 。 以 上 7种 结 构 型 模 式 , 除 了 适 配 器 模 式 分 为 类 结 构 型 模 式 和 对 象 结构 型 模 式 2种 , 其 他 的 全 部 属 于 对 象 结 构 型 模 式 。 软件设计模式(Java版)(ISDN:9787564740634)、 作者:程细柱人民邮电出版社()销售电话:010-81055256 4.2 代理(Proxy)模式 4.2.1 模式的定义与特点 定 义 : 由 于 某 些 原 因 需 要 给 某 对 象 提 供 一 个 代 理 以 控 制 对 该 对 象的 访 问 。 这 时 , 访 问 对 象 不 适 合 或 者 不 能 直 接 引 用 目 标 对 象 , 代 理 对象 作 为 访 问 对 象 和 目 标 对 象 之 间 的 中 介 。 优 点 : 1) 代 理 模 式 在 客 户 端 与 目 标 对 象 之 间 起 到 一 个 中 介 作 用和 保 护 目 标 对 象 的 作 用 ; 2) 代 理 对 象 可 以 扩 展 目 标 对 象 的 功 能 ; 3)代 理 模 式 能 将 客 户 端 与 目 标 对 象 分 离 , 在 一 定 程 度 上 降 低 了 系 统 的 耦合 度 。 缺 点 : 1) 在 客 户 端 和 目 标 对 象 增 加 一 个 代 理 对 象 , 会 造 成 请 求处 理 速 度 变 慢 ; 2) 增 加 了 系 统 的 复 杂 度 。 软件设计模式(Java版)、 作者:程细柱销售电话:010-81055256人民邮电出版社( 和 ) 4.2 代理(Proxy)模式(续) 4.2.2 模式的结构与实现 1.模 式 的 结 构 代 理 模 式 的 主 要 角 色 有 : 抽 象 主 题 ( Subject) 类 : 通 过 接 口 或 抽 象 类 声 明 真 实 主 题 和代 理 对 象 实 现 的 业 务 方 法 。 真 实 主 题 ( RealSubject) 类 : 实 现 了 抽 象 主 题 中 的 具 体 业 务 ,是 代 理 对 象 所 代 表 的 真 实 对 象 , 是 我 们 最 终 要 引 用 的 对 象 。 代 理 ( Proxy) 类 : 提 供 了 与 真 实 主 题 相 同 的 接 口 , 其 内 部 含有 对 真 实 主 题 的 引 用 , 它 可 以 访 问 或 控 制 或 扩 展 真 实 主 题 的 功 能 。 其 结 构 图 如 下 : 软件设计模式(Java版)、 作者:程细柱销售电话:010-81055256人民邮电出版社( 和 ) 4.2 代理(Proxy)模式(续) 4.2.2 模式的结构与实现 1.模 式 的 结构 ( 续 ) : 结 构 图 如 右 : 2.模 式 的 实现 /实 现 代 码见 附 件 软件设计模式(Java版)、 作者:程细柱销售电话:010-81055256人民邮电出版社( 和 ) 4.2 代理(Proxy)模式(续) 4.2.3 模式的应用实例 【 例 4.1】 韶 关 “ 天 街 e角 ” 公司 是 一 家 婺 源 特 产 公 司 的 代 售 公司 , 用 代 理 模 式 实 现 之 。 分 析 : 本 例 中 的 “ 婺 源 特 产 公司 ” 经 营 婺 源 特 产 , 它 是 真 实 主题 ; 而 韶 关 “ 天 街 e角 ” 公 司 是 婺源 公 司 的 代 理 , 它 可 以 调 用 婺 源公 司 的 相 关 方 法 , 而 且 它 可 以 增加 一 些 额 外 的 处 理 , 如 包 装 或 加价 等 ; 客 户 端 通 过 “ 天 街 e角 ” 公司 间 接 访 问 “ 婺 源 公 司 ” 的 产 品 ,右 边 是 其 结 构 图 : 注 : 程 序 代 码 见 附 件 。 软件设计模式(Java版)、 作者:程细柱销售电话:010-81055256人民邮电出版社( 和 ) 4.2 代理(Proxy)模式(续) 4.2.3 模式的应用实例 【 例 4.1】 韶 关“ 天 街 e角 ” 公 司 是一 家 婺 源 特 产 公 司的 代 售 公 司 , 用 代理 模 式 实 现 之 。 右 边 是 程 序 的 运行 结 果 : 软件设计模式(Java版)、 作者:程细柱销售电话:010-81055256人民邮电出版社( 和 ) 4.2 代理(Proxy)模式(续) 4.2.4 模式的应用场景 1) 远 程 代 理 , 这 种 方 式 通 常 是 为 了 隐 藏 目 标 对 象 存 在 于 不 同 地 址 空 间 的 事 实 ,方 便 客 户 端 访 问 。 例 如 用 户 申 请 某 些 网 盘 空 间 时 , 会 在 用 户 的 文 件 系 统 中 建 立 一个 虚 拟 的 硬 盘 , 用 户 访 问 它 实 际 访 问 的 是 网 盘 空 间 。 2) 虚 拟 代 理 , 这 种 方 式 通 常 用 于 要 创 建 的 目 标 对 象 开 销 很 大 时 。 比 如 下 载一 幅 很 大 的 图 像 需 要 很 长 时 间 , 因 某 种 计 算 比 较 复 杂 而 短 时 间 无 法 完 成 , 这 时 可以 先 用 小 比 例 的 虚 拟 代 理 替 换 真 实 的 对 象 , 消 除 用 户 对 服 务 器 慢 的 感 觉 。 3) 安 全 代 理 , 这 种 方 式 通 常 用 于 控 制 不 同 种 类 客 户 对 真 实 对 象 的 访 问 权 限 。 4) 智 能 指 引 , 主 要 用 于 当 调 用 目 标 对 象 时 , 代 理 附 加 一 些 额 外 的 处 理 功 能 。比 如 增 加 计 算 真 实 对 象 的 引 用 次 数 的 功 能 , 这 样 当 该 对 象 没 有 引 用 时 , 就 可 以 自动 释 放 它 。 5) 延 迟 加 载 , 指 为 了 提 高 系 统 的 性 能 , 延 迟 对 目 标 的 加 载 。 例 如 ,Hibernate中 就 存 在 属 性 的 延 迟 加 载 和 关 联 表 的 延 时 加 载 。 软件设计模式(Java版)、 作者:程细柱销售电话:010-81055256人民邮电出版社( 和 ) 4.2 代理(Proxy)模式(续) 4.2.5 模式的扩展 前 面 介 绍 是 静 态 代 理 模式 , 存 在 两 个 缺 点 : 1) 真实 主 题 与 代 理 主 题 一 一 对应 , 增 加 真 实 主 题 也 要 增加 代 理 ; 2) 设 计 代 理 以 前真 实 主 题 必 须 事 先 存 在 ,不 太 灵 活 。 而 采 用 动 态 代理 模 式 可 以 解 决 以 上 问 题 ,其 结 构 图 如 右 : 软件设计模式(Java版)、 作者:程细柱销售电话:010-81055256人民邮电出版社( 和 ) 4.3 适配器(Adapter)模式 4.3.1 模式的定义与特点 定 义 : 将 一 个 类 的 接 口 转 换 成 客 户 希 望 的 另 外 一 个 接 口 , 使 得 原本 由 于 接 口 不 兼 容 而 不 能 一 起 工 作 的 那 些 类 能 一 起 工 作 。 适 配 器 模 式 分 为 类 结 构 型 模 式 和 对 象 结 构 型 模 式 2种 。 优 点 : 1) 客 户 端 通 过 适 配 器 可 以 透 明 地 调 用 目 标 接 口 ; 2) 程 序 员 不 需 要 修 改 原 有 代 码 而 重 用 现 有 的 适 配 者 类 ; 3) 将 目 标 类 和 适 配 者 类 解 耦 , 解 决 了 目 标 类 和 适 配 者 类 接 口 不一 致 的 问 题 。 缺 点 : 对 于 类 适 配 器 来 说 , 更 换 适 配 器 的 实 现 过 程 比 较 复 杂 。 软件设计模式(Java版)、 作者:程细柱销售电话:010-81055256人民邮电出版社( 和 ) 4.3 适配器(Adapter)模式(续) 4.3.2 模式的结构与实现 1.模 式 的 结 构 适 配 器 模 式 包 含 以 下 主 要 角 色 : 目 标 ( Target) 接 口 : 当 前 系 统 业 务 所 期 待 的 接 口 , 它 可 以是 抽 象 类 或 接 口 。 适 配 者 ( Adaptee) 类 : 是 被 访 问 和 适 配 的 现 存 组 件 库 中 的 组件 接 口 。 适 配 器 ( Adapter) 类 : 它 一 个 转 换 器 , 通 过 继 承 或 引 用 适 配者 的 对 象 , 把 适 配 者 接 口 转 换 成 目 标 接 口 , 让 客 户 按 目 标 接 口 的 格 式访 问 适 配 者 。 适 配 器 模 式 分 为 : 类 适 配 器 模 式 和 对 象 适 配 器 模 式 2种 。 软件设计模式(Java版)、 作者:程细柱销售电话:010-81055256人民邮电出版社( 和 ) 4.3 适配器(Adapter)模式(续)a.类 适 配 器 模 式 : 其 实 现 代 码 见 附 件 , 结 构 图 如 下 : 软件设计模式(Java版)、 作者:程细柱销售电话:010-81055256人民邮电出版社( 和 ) 4.3 适配器(Adapter)模式(续)b.对 象 适 配 器 模 式 : 其 实 现 代 码 见 附 件 , 结 构 图 如 下 : 软件设计模式(Java版)、 作者:程细柱销售电话:010-81055256人民邮电出版社( 和 ) 4.3 适配器(Adapter)模式(续) 4.3.3 模式的应用实例 【 例 4.2】 用 适 配 器 模 式 模 拟新 能 源 汽 车 的 发 动 机 。 分 析 : 新 能 源 汽 车 的 发 动 机有 电 能 发 动 机 和 光 能 发 动 机 等 ,各 种 发 动 机 的 驱 动 方 法 不 同 ,客 户 端 希 望 用 统 一 的 发 动 机 驱动 方 法 drive()访 问 这 两 种 发 动机 , 所 以 要 为 这 些 发 动 机 定 义适 配 器 , 右 边 是 其 结 构 图 : 注 : 程 序 代 码 见 附 件 软件设计模式(Java版)、 作者:程细柱销售电话:010-81055256人民邮电出版社( 和 ) 4.3 适配器(Adapter)模式(续) 4.3.4 模式的应用场景 适 配 器 模 式 通 常 适 用 以 下 场 景 : 1) 以 前 开 发 的 系 统 存 在 满 足 新 系 统 功 能 需 求 的 类 , 但 其 接 口 同新 系 统 的 接 口 不 一 致 。 2) 使 用 第 三 方 提 供 的 组 件 , 但 组 件 接 口 定 义 和 自 己 要 求 的 接 口定 义 不 同 。 软件设计模式(Java版)、 作者:程细柱销售电话:010-81055256人民邮电出版社( 和 ) 4.3 适配器(Adapter)模式(续) 4.3.5 模式的扩展 适 配 器 模 式 可 扩 展 为双 向 适 配 器 模 式 , 双 向 适配 器 类 既 可 以 把 适 配 者 接口 转 换 成 目 标 接 口 , 也 可以 把 目 标 接 口 转 换 成 适 配者 接 口 , 右 边 是 其 结 构 图 : 注 : 程 序 代 码 见 附 件 软件设计模式(Java版)、 作者:程细柱销售电话:010-81055256人民邮电出版社( 和 ) 4.4 桥接(Bridge)模式 4.4.1 模式的定义与特点 定 义 : 将 抽 象 与 实 现 分 离 , 使 他 们 可 以 独 立 的 变 化 。 它 是 用 组 合关 系 代 替 继 承 关 系 来 实 现 , 用 于 多 个 维 度 变 化 的 实 例 , 如 图 形 既 可 按形 状 分 , 又 可 按 颜 色 分 。 优 点 : 1) 由 于 抽 象 与 实 现 分 离 , 所 以 扩 展 能 力 强 ; 2) 其 实 现 细 节 对 客 户 透 明 。 缺 点 : 由 于 聚 合 关 系 建 立 在 抽 象 层 , 要 求 开 发 者 针 对 抽 象 化 进 行设 计 与 编 程 , 这 增 加 了 系 统 的 理 解 与 设 计 难 度 。 软件设计模式(Java版)、 作者:程细柱销售电话:010-81055256人民邮电出版社( 和 ) 4.4 桥接(Bridge)模式(续) 4.4.2 模式的结构与实现 1.模 式 的 结 构 桥 接 模 式 包 含 以 下 主 要 角 色 : 抽 象 化 (Abstraction)角 色 : 定 义 抽 象 类 , 并 包 含 一 个 对 实 现化 对 象 的 引 用 。 扩 展 抽 象 化 (Refined Abstraction)角 色 : 是 抽 象 化 角 色 的 子类 , 实 现 父 类 中 的 业 务 方 法 , 并 通 过 组 合 关 系 调 用 实 现 化 角 色 中 的 业务 方 法 。 实 现 化 (Implementor)角 色 : 定 义 实 现 化 角 色 的 接 口 , 供 扩 展抽 象 化 角 色 调 用 。 具 体 实 现 化 (Concrete Implementor)角 色 : 给 出 实 现 化 角 色接 口 的 具 体 实 现 。 软件设计模式(Java版)、 作者:程细柱销售电话:010-81055256人民邮电出版社( 和 ) 4.4 桥接(Bridge)模式(续) 4.4.2 模式的结构与实现 1.模 式 的 结构 ( 续 ) : 结 构 图 如 右 : 2.模 式 的 实现 /实 现 代 码见 附 件 软件设计模式(Java版)、 作者:程细柱销售电话:010-81055256人民邮电出版社( 和 ) 4.4 桥接(Bridge)模式(续) 4.4.3 模式的应用实例 【 例 4.3】 用 桥 接 模 式 模 拟 女 士皮 包 的 选 购 。 分 析 : 女 士 皮 包 有 很 多 种 , 可以 按 用 途 分 、 按 皮 质 分 、 按 品 牌 分 、按 颜 色 分 、 按 大 小 分 等 , 存 在 多 个维 度 的 变 化 , 所 以 采 用 桥 接 模 式 来实 现 女 士 皮 包 的 选 购 比 较 合 适 。 本实 例 按 用 途 分 可 选 钱 包 ( Wallet)和 挎 包 ( HandBag) , 按 颜 色 分 可选 黄 色 ( Yellow) 和 红 色 ( Red) ,右 边 是 其 结 构 图 : 注 : 程 序 代 码 见 附 件 。 软件设计模式(Java版)、 作者:程细柱销售电话:010-81055256人民邮电出版社( 和 ) 4.4 桥接(Bridge)模式(续) 4.4.3 模式的应用实例 【 例 4.3】 用 桥 接 模式 模 拟 女 士 皮 包 的 选 购 。 右 边 是 程 序 的 运 行 结果 : 软件设计模式(Java版)、 作者:程细柱销售电话:010-81055256人民邮电出版社( 和 ) 4.4 桥接(Bridge)模式(续) 4.4.4 模式的应用场景 桥 接 模 式 通 常 适 用 以 下 场 景 : 1) 当 一 个 类 存 在 两 个 独 立 变 化 的 维 度 , 且 这 两 个 维 度 都 需 要 进行 扩 展 时 。 2) 当 一 个 系 统 不 希 望 使 用 继 承 或 因 为 多 层 次 继 承 导 致 系 统 类 的个 数 急 剧 增 加 时 。 3) 当 一 个 系 统 需 要 在 构 件 的 抽 象 化 角 色 和 具 体 化 角 色 之 间 增 加更 多 的 灵 活 性 时 。 软件设计模式(Java版)、 作者:程细柱销售电话:010-81055256人民邮电出版社( 和 ) 4.4 桥接(Bridge)模式(续) 4.4.5 模式的扩展 在 软 件 开 发 中 , 有 时 桥接 模 式 可 与 适 配 器 模 式 联合 使 用 。 当 桥 接 模 式 的 实现 化 角 色 的 接 口 与 现 有 类的 接 口 不 一 致 时 , 可 以 在二 者 中 间 定 义 一 个 适 配 器将 二 者 联 接 起 来 , 其 结 构图 如 右 : 软件设计模式(Java版)、 作者:程细柱销售电话:010-81055256人民邮电出版社( 和 ) 4.5 本章小结 本 章 主 要 介 绍 了 结 构 型 模 式 的 特 点 和 分 类 , 以 及 代 理 模 式 、 适 配 器模 式 、 桥 接 模 式 的 定 义 、 特 点 、 结 构 、 实 现 方 法 与 扩 展 方 向 , 并 通过 多 个 应 用 实 例 来 说 明 这 三 种 设 计 模 式 的 应 用 场 景 和 使 用 方 法 。 习 题 : 见 教 材 。 软件设计模式(Java版)(ISDN:9787564740634)、 作者:程细柱人民邮电出版社()销售电话:010-81055256 软件设计模式(Java版)、 作者:程细柱销售电话:010-81055256人民邮电出版社( 和 )
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 中学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!