2009-10-15 36 views
6

这些我在编程世界中遇到很多“横切需求/关注点”。Crosscutting需求/关注在编程中意味着什么?

虽然我觉得我有一个想法它的意思是我还没有一个清晰的想法。我通常在Web服务和SOA中听到很多。

这可以用来解释吗?你好,世界的例子?

回答

8

它往往意味着“你想在很多地方做的东西,这与那段代码的真正内容没有太大关系”。

常见的例子有:

  • 事务处理
  • 安全
  • 记录
  • 错误处理

我觉得它通常就提到Aspect-Oriented Programming(AOP)通常尝试以声明的方式处理这样的事情,例如与属性/注释。作为一种简化,它是自动应用样板代码(例如,在当前上下文中验证用户的身份/权限,或者记录方法的入口/出口)的一种情况,而不会使代码本身变得杂乱。

2

我建议你看看Postsharp这样的框架,并从postsharp站点尝试this示例。如果你知道java进入AspectJ是很值得一看的。但首先,您可能想要阅读由Jon Skeet发布的链接:)

3

横切的标准“hello world”示例记录:您的生产系统中存在错误,您不知道发生了什么。为了解决这个问题,你真的需要看看代码中的哪些函数被调用,他们得到了什么参数以及返回的内容。

这是一个可以完全自动化的简单任务:找到所有功能(或使用某种过滤器的子集),并向它们添加打印名称和参数的日志记录调用。由于代码包含完成此任务所需的所有信息,因此您真正需要的是一种可为您完成的工具,它可以在单个位置执行此操作(而无需编辑数千个在任何地方添加日志语句的源文件)。