3

我想知道人们对应用 AOP 的偏好。

例如。如果在阅读文章时应该增加点击数,我应该应用 AOP 来查看方法吗?或者只是在 view() 中调用 increaseHitCount()?

在我对此事的看法中,我猜 increaseHitCount() 不是 view() 方法的主要目的,而是辅助问题。

public DAO dao;

public Article view() {
    dao.increaseHitCount(); //<-- I think this is not for here.

    return dao.getArticle();
}

但是,我只是担心代码越来越难以被整个源代码中应用的 AOP 理解和阅读。

4

2 回答 2

2

AOP 将帮助您使您的代码更加正交,并且还有助于防止代码重复。我的经验是方面用于一般系统方面的功能。考虑一下命中计数是否与页面逻辑的其余部分松散耦合,是否足够通用。如果是的话是可以接受的(或可取的)将其用作一个方面。另一方面,AOP 带来了开销,但例如 AspectJ 确实很快。
在这种情况下,如果在项目中使用 AOP,我会考虑它。

于 2012-08-24T05:45:23.270 回答
1

AOP 旨在更好地分离横切关注点。在这种情况下,您要处理两个问题:文章视图和点击次数统计。因此,您应该将它们分开。由于您不能仅通过 OOP 构造正确地将它们分开(您的视图方法将始终必须知道在返回视图之前要执行某些操作)AOP 是正确的解决方案。然而,许多人认为代码变得难以理解。这几乎取决于您使用它的程度和使用程度,也可能取决于底层 OO 架构的质量

于 2012-08-24T06:03:07.100 回答