1. ホーム
  2. design-patterns

[解決済み] クロスカットの懸念事項の例

2022-04-26 14:01:42

質問

の良い例を教えてください。 cross-cutting concern ? のカルテの例です。 ウィキペディア のページは、私には不完全に思えます。

この例から具体的に言うと、なぜログを取るとコードが重複してしまうのか( 散布 )? (以下のような単純な呼び出しの他に log("....") をどこでも使えるので、大したことはなさそうです)。

とはどのような違いがあるのでしょうか? core concerncross-cutting concern ?

私の最終目標は、AOPの理解を深めることです。

どのように解決するのですか?

を理解する前に 横断的な関心事 を理解する必要があります。 懸念事項 .

A 懸念事項 とは、機能を基準に分割した部分を指す言葉です。

懸念事項には2つのタイプがあります。

  1. 一次要件に対する単一かつ特定の機能を表す懸念は、次のように呼ばれます。 コアコンサーン .

    または

    システムの主要な機能は、コアコンサーンとして知られています。

    例えば : ビジネスロジック
  2. 二次要求の機能性を表す関係性は、次のように呼ばれます。 横断的な関心事またはシステム全体の関心事 .

    または

    クロスカッティングの関心事 は、アプリケーション全体に適用される懸念事項であり、アプリケーション全体に影響を及ぼします。

    例えば ロギング、セキュリティ、データ転送は、アプリケーションのほぼすべてのモジュールで必要とされる懸念事項であり、それゆえ、これらは横断的な懸念事項です。

礼儀作法

この図は、典型的なアプリケーションをモジュールに分解したものです。各モジュールの主な関心事は、その特定のドメインに対するサービスを提供することである。しかし、これらの各モジュールは、セキュリティロギングやトランザクション管理など、類似の補助的な機能も必要とします。分散アプリケーションでは、メソッドコールをトレースしてデバッグを支援するために、ロギングが頻繁に使用されます。例えば、各関数本体の最初と最後の両方でロギングを行うとします。これは、少なくとも1つの関数を持つすべてのクラスをクロスカットすることになります。

(表敬訪問)