[解決済み】アスペクト指向プログラミングとは何ですか?
2022-04-19 21:03:40
質問
私はオブジェクト指向プログラミングを理解しており、長い間、OOプログラムを書いてきました。 アスペクト指向プログラミングについてはよく言われているようですが、私はそれが何なのか、どのように使うのか、よく知りませんでした。 基本的なパラダイムは何なのでしょうか?
この質問は関連するものですが、それを問うているわけではありません。
アスペクト指向プログラミングとオブジェクト指向プログラミングの比較
解決方法は?
AOPは、以下の問題に対処します。 横断的な問題 これは、ロギングや検証のように、異なるメソッドで繰り返され、通常は完全に独自のモジュールにリファクタリングすることができないあらゆる種類のコードです。AOPでは、そのようなものをメインコードから除外して、このように垂直に定義することができるのです。
function mainProgram()
{
var x = foo();
doSomethingWith(x);
return x;
}
aspect logging
{
before (mainProgram is called):
{
log.Write("entering mainProgram");
}
after (mainProgram is called):
{
log.Write( "exiting mainProgram with return value of "
+ mainProgram.returnValue);
}
}
aspect verification
{
before (doSomethingWith is called):
{
if (doSomethingWith.arguments[0] == null)
{
throw NullArgumentException();
}
if (!doSomethingWith.caller.isAuthenticated)
{
throw Securityexception();
}
}
}
そして アスペクトウィーバー を使用して、このようにコンパイルされます。
function mainProgram()
{
log.Write("entering mainProgram");
var x = foo();
if (x == null) throw NullArgumentException();
if (!mainProgramIsAuthenticated()) throw Securityexception();
doSomethingWith(x);
log.Write("exiting mainProgram with return value of "+ x);
return x;
}
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン