1。基本概念
AspectJは、アスペクトプログラミング用のJavaベースの実装です。 JavaにJoin Pointの新しい概念を追加しますが、実際には既存のJavaコンセプトの名前にすぎません。 Java言語にいくつかの新しい構造を追加します:PointCut、Notification(アドバイス)、タイプ間宣言(タイプ間宣言)、およびアスペクト(アスペクト)。チルトと通知は、プログラムの流れに動的に影響し、型型宣言はプログラムの静的なクラス階層構造であり、接線はこれらすべての新しい構造のカプセルです。
セクション、接続ポイント、接線ポイント、および通知に基づく概念は次のとおりです。
アスペクト:アスペクト宣言は、Javaのクラス宣言に似ており、いくつかのポイントカットと対応するアドバイスが含まれています。
ジョイントポイント:通常、プログラムで明確に定義されているポイント、メソッド呼び出し、クラスメンバーへのアクセス、および例外処理プログラムブロックの実行なども含まれます。
PointCut:これらのジョイントポイントのグループは、論理的な関係を通じて組み合わされているか、ワイルドカード、正規表現などを介して集中します。
アドバイス:アドバイスは、ポイントカットで定義されたプログラムポイントによって行われる特定の操作を定義します。
接続ポイントは、プログラムフローの適切なポイントです。接線は、これらのポイントの特定の接続ポイントと値のセットを収集します。通知とは、接続ポイントが到着したときに実行されたコードであり、これらはaspectJの動的な部分です。実際、接続ポイントはプログラムのステートメントのようなものであり、接線ポイントはブレークポイントでプログラムスタックに関する情報を収集します。このブレークポイント。 AspectJには、さまざまな種類のタイプ間宣言もあります。これにより、プログラマーはクラス間の静的構造、名前、クラスメンバー、および関係を変更できます。 AspectJのアスペクトは、フォーカスをクロスカットするモジュールユニットです。それらの行動は、Javaのクラスに似ていますが、ポイントカット、通知、およびタイプ間宣言もカプセル化します。
2。AJDTに基づいてAOPプログラムを開発する方法:AspectJ開発ツール?
AJDT Webサイトの手順に従って、eclipse http://www.eclipse.org/ajdt/にAJDTプラグインをインストールします
AspectJプロジェクトプロジェクトを作成します
コード開発を実施します(この記事は簡単な例を提供します)
3。簡単な例:
コードコピーは次のとおりです。
パッケージaop.test;
パブリックインターフェイスフィギュアエレメント{
public void setxy(int x、int y);
public void draw();
}
コードコピーは次のとおりです。
パッケージaop.test;
パブリッククラスポイントはフィギュアエレメントを実装しています{
public int x;
プライベートインストY;
public int getX(){
xを返します。
}
public string setx(int x){
system.out.println( "set x値:x ="+x);
this.x = x;
return "return値はx ="+xです。
}
public int gety(){
yを返します。
}
public void sety(int y){
this.y = y;
}
public point(){
}
パブリックポイント(int x、int y){
this.x = x;
this.y = y;
}
@オーバーライド
public void setXy(int x、int y){
this.x = x;
this.y = y;
system.out.println( "point setxy:x ="+x+"、y ="+y);
}
@オーバーライド
public void draw(){
System.out.println( "Point Draw");
}
@オーバーライド
public string toString(){
return "ポイント:x ="+x+"、y ="+y;
}
}