AOP及其在状态机工作流中的应用

  • 格式:pdf
  • 大小:163.11 KB
  • 文档页数:4

Vo .0 1 3 No. 2 Ma .2 6 r OD
文 章 编 号 :0 0 82 20 )2 17— 4 10 —56 {06 0 —02 0
A P及 其 在 状 态 机 工 作 流 中 的 应 用 O
陈勇光 , 薛锦 云
( 江西师范大学 计算机信息工程学院 , 江西 南 昌 302 ) 302
面向对 象技 术是 一 种 以对象 为基 础 、 以事 件 来 驱 动对 象执 行 处 理 的 程 序 设计 技 术 _ . 向对 象 技术 在 1面 J 描述 客 观世 界 的对 象及 其相 互关 系方 面 取 得 了 成功 , 它 在解 决 诸 如 用 户 权 限检 查 、 但 日志 、 务 等 方 面 时 , 事 则 显得 比较 生 硬 . 以用户 权 限检 查 为例 , 在访 问 资源 对 象 前 必 须 要进 行 权 限检 查 . 面 向对 象 设 计 中 , 限 在 权 检查 将成 为 这些 资源 对 象 的行为 , 因此 权 限检 查 将 分散 在 系统 多 个 对 象 之 中 . 旦 权 限检 查 的策 略 随 用 户 一 需求 发 生改 变 , 由于需要 修 改 的地方 分 散在 各 个 类 文 件 中 , 改 量 大 , 加 了出错 的概 率 , 且 加 大 了 系统 修 增 并
收 稿 日期 :050 —2 20 学 基 金 (0 7o2 和 江 西 师 范 大 学研 究生 创 新 基 金 资 助 项 目 . 国 6 239 )
作者简介 : 陈勇光(9 1 , , 18 一)男 江西 临川人 , 士研 究生 , 硕 主要从 事基 于构件的软件开发研究
过在该框架 中引入 A P 制来 克服纯面向对象编程 的不 足 , 中分析 了 A P的优势和应用 价值 , O 机 从 O 最后 对
A P和 O P的 关 系 进 行 了讨 论 . O O
关键 词 : 面向切面编程 ; 面向对象; 状态机工作流; 切面; 横切关注点 中图分 类号 : ) 1 13 1 文献 标识 码 : A
维普资讯
第 3 第 2期 0卷 20 年 3 06 月
江西师范大学学报 ( 自然 科 学 版 )
J UR L O ING OR O NA F JA XIN MAL U NⅣ E S I N U LS E E) R r' Ar RA CINC Y(
维 护 的难 度 .
包 括 面 向对象 在 内的一 些程 序 设计 方法 , 常表 现 出一 些不 能 自然地 适 合单 个 程 序模 块 或 者 几个 紧密 经 相 关 的程 序模 块 的行 为l . _ 如果 每 个对 象都 需要 去实 现 这些 行 为 , 2 J 势必 会 造 成 大量 重 复 代码 的产生 . 通过 不
同的切 面 , 以将 系统 中各 个不 同层 次 上 的 问题 隔离 开 来 , 现 统 一集 约式 处 理 . 可 实 这样 带 来 的好 处 是 : 方 一
面使 得开 发逻 辑 更加 清晰 , 专业 化 分工 更加 易 于进行 ; 另一 方 面 , 于切 面 的 隔离 , 由 降低 了耦 合 性 , 以在 不 可
现业 务 功能 的代 码 中而造 成 的 . 件 系 统 中需 要 解 决 的 问题 是 关 注 点 . 件 系统 的业 务 功 能组 成 了核 心 关 软 软 注点 , 就是 软 件 系统要 解决 的问题 , 也 而诸 如 用 户 权 限检 查 、 日志记 录 、 务处 理 等 关 注 点 就 形 成 了横 切 关 事 注点, 也称 为 系统级 关 注点 . 因为这 些关 注点 散 布在核 心 关注 点 中 , 相互 形 成 了横 切 的关 系 .
同 的应用 中将 各 个切 面组 合使 用 , 而使得 代码 可 重用性 增 强 . 从
1 回 同 回 编 崔
传统 的编 程技 术倾 向于按 照 功 能 或 行 为 对 软 件 系 统 进 行 分 割 , 这个 分 割 的结 果 是 实 现某 一 功 能 的模
块 , 函数 、 程 、 等 . 在 编程实 践 中 , 件 系统 中有 些 行 为无 法 封装 在 单个 的模 块 中 , 如 日志 记 录 、 如 过 类 但 软 例 事
务处 理 、 对上 下 文敏感 的错 误 处理 、 能 优 化 等 . 常这 些 功 能 与 行 为 并 不 实 现 系统 的业 务 功 能 , 它 们 辅 性 通 但
助 了这些 业 务功 能 的实 现 , 散布 在 实现 系统 功能 的诸 多模 块 中 , 成 代码 的纠 结 _ , 使 得 实 现 系统 功 能 并 造 3这 J 的模 块 的代 码难 于 阅读 、 理解 、 调试 、 维护 和扩 展 等 , 使 得纠 结 的 代码 难 于复 用 . 也 若将 实 现系 统业 务 功 能 的
维普资讯
模块 看作 系统 的横 向分解 单元 , 么 上述 分 散 在 功 能模 块 中 的功 能 与行 为 就形 成 了一 种 横 向的 切 面 , 面 那 切
与模块形成 了横切 , 从而造成传统 的编程技术无法将切面模块化, 造成两种代码纠结在一起 . 造 成 代码 纠结 的原 因在 于 传统 编程 技术 中 , 件 系统 中非 业 务 功 能 实 现 的 代码 无 法模 块 化 , 布在 实 软 散
摘要 : 面向切面编程( s cOi t r r mn, Ap t rn d o a i 简称 A P作为一种新的编程技术正 日 e— ee P gm g O) 益引起人们的关
注 . 章 介 绍 了 A P产 生 背 景 和 理 论 价 值 , 结 合 作 者 所 设 计 的 状 态 机 工 作 流 框 架 , 细讨 论 了 如何 通 文 O 并 详