【问题标题】:Aspect oriented programming - why cross cutting is the main reason面向切面的编程——为什么横切是主要原因
【发布时间】:2016-06-06 10:58:26
【问题描述】:

我目前正在开发一个需要在其中使用 Aspectj 的项目。在文档中,对于我编写的每个方面,我都需要解释使用该方面的原因,而不仅仅是在主程序中编写代码。

一般来说,我只考虑代码重用或灵活性之类的原因(意味着程序可以在没有这个方面的情况下处理,但方面会使程序更有效,比如检查将来可能会造成麻烦的事情例如),但我认为这还不够。

在寻找更多原因时,我看到许多程序员写了“横切”——这是什么意思,为什么它如此重要?

编辑

这个问题是在我上学的时候被问到的,当时项目中的某些方面并不常见。现在,3 年后,在 Java(Spring)中进行了很多后端编程,我可以用简单的例子来回答自己:存储库方面 - 此注释(@repository)用于直接访问数据库的 Java 类。例如,当类中发生异常时,该异常有一个处理程序,无需添加 try catch 块。它不限于特定的类,不关心域逻辑,它适用于所有想要与数据库交互的类 - 这是一个交叉问题。

【问题讨论】:

  • Cross cutting concerns 涉及系统的所有(或大部分)部分,例如日志记录。在程序的单个部分中处理这些事情非常方便。
  • @Kayaman 是的,你说得对。刚刚编辑了问题。

标签: java aop aspectj spring-aop


【解决方案1】:

在我看来,横切主要是为了分离关注点,即您可以分离处理例如的代码。处理领域事物的代码中的技术事物(例如日志记录、授权、事务等)。

但是为什么以及何时有用呢?

如果您的开发组织也将这些东西分开,即如果一些开发人员负责领域编程领域而其他开发人员负责技术层,那么这将特别有用。 所以不同的人可以在不同的地方写自己的代码,不会互相打扰。

如果同一个人编写不同的切面,这种关注点分离可能仍然有用,但在这种情况下,它并不是那么紧迫,至少不是那么紧迫,以至于你想弄乱 AspectJ,它引入了一些额外的复杂性。

【讨论】:

    猜你喜欢
    • 2010-10-26
    • 2010-09-23
    • 2011-07-31
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2016-02-14
    • 2014-05-03
    • 1970-01-01
    相关资源
    最近更新 更多