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 は、分野横断的な関心事をより適切に分離できるようにすることを目的としています。この場合、記事の表示とクリック数の統計という 2 つの問題に対処しています。したがって、それらを分離する必要があります。OOP コンストラクトだけでは適切に分離できないため (ビュー メソッドは、ビューを返す前に実行する必要があることを常に認識している必要があります)、AOP が適切なソリューションです。しかし多くの人は、コードが理解しにくくなると考えています。それは、あなたがそれをどれだけうまく使うかにほとんど依存します。また、基礎となるオブジェクト指向アーキテクチャの品質にも依存する場合があります

于 2012-08-24T06:03:07.100 に答える