Warm tip: This article is reproduced from serverfault.com, please click

design patterns-跨领域关注示例

(design patterns - Cross cutting concern example)

发布于 2014-05-16 16:45:52

一个很好的例子是cross-cutting concern什么?维基百科页面上的病历示例对我来说并不完整。

特别是从该示例中,为什么日志记录会导致代码重复(散射)?(除了像log("....")到处这样的简单调用之外,这似乎没什么大不了的)。

acore concern和a和有cross-cutting concern什么不一样?

我的最终目标是更好地了解AOP。

Questioner
jlars62
Viewed
0
607 2021-02-18 20:54:18

在了解“横切关注点”之前,我们必须先了解“关注点”

关注的是,是指系统的功能的基础上划分的一部分的术语。

有两种类型的关注点:

  1. 表示主要需求的单个和特定功能的关注点称为核心关注点

    系统的主要功能被称为核心关注点。
    例如:业务逻辑
  2. 表示次要功能的关注点称为跨界关注点或系统范围的关注点
    OR
    横切关注点是关注它适用于整个应用程序,它会影响整个应用程序。
    例如:日志记录,安全性和数据传输是几乎每个应用程序模块都需要的关注点,因此它们是跨领域的关注点。

礼貌

在此处输入图片说明

此图代表了分解为模块的典型应用程序。每个模块的主要关注点是为其特定领域提供服务。但是,每个模块还需要类似的辅助功能,例如安全日志记录和事务管理。横切关注点的一个示例是“日志记录”,它经常在分布式应用程序中使用,以通过跟踪方法调用来辅助调试。假设我们在每个函数体的开头和结尾都进行日志记录。这将导致横切所有具有至少一个功能的类。

(礼貌)