アスペクト指向入門
jAVAオブジェクト指向からAspectJ プログラミング

[表紙]アスペクト指向入門 ―jAVA・オブジェクト指向からAspectJ プログラミング

A5判/264ページ

定価(本体2,480円+税)

ISBN 4-7741-2581-4

ただいま弊社在庫はございません。

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

アスペクト指向はオブジェクト指向の限界を克服するために考え出された最新技術です。これによりプログラム同士のつながりを緩めることができます。つまり「変化に強い開発」が実現できるようになるのです。本書はこの最新技術を基礎の基礎から学ぶことができます。

こんな方におすすめ

  • アスペクト指向プログラミングに興味がある方
  • JBoss AOP,Spring AOPなどを本当に理解したい方に

目次

  • はじめに

Foreword,本書の読み方

第1章 オブジェクト指向からアスペクト指向へ

  • 1.1 オブジェクト指向とモジュール化
  • 1.2 オブジェクト指向言語を使うわけ
    • 1.2.1 プログラムの例
  • 1.3 オブジェクト指向の限界――ロギング
    • 1.3.1 会議室予約システムのプログラム
    • 1.3.2 Loggerクラスでモジュール化?
  • 1.4 アスペクト指向とは何か?
    • 1.4.1 AspectJによるロギング用モジュール
    • 1.4.2 ポイントカットとアドバイス
    • 1.4.3 ジョインポイント
    • 1.4.4 関心事の分離
    • 1.4.5 横断的関心事
    • 1.4.6 なぜアスペクト指向と呼ばれるのか
    • 1.4.7 呼び出し側の再利用
  • 1.5 変化を予期できますか?
    • 1.5.1 インタフェースの活用
    • 1.5.2 デザインパターンの活用

第2章 AspectJ 基礎編

  • 2.1 簡単なアスペクト
    • 2.1.1 ジョインポイント,ポイントカット,そしてアドバイス
    • 2.1.2 loggedMethodsポイントカット
    • 2.1.3 Loggerのアドバイス
  • 2.2 ポイントカット
    • 2.2.1 メソッド関連のポイントカット
    • 2.2.2 フィールド関連のポイントカット
    • 2.2.3 コンストラクタ関連のポイントカット
    • 2.2.4 catch節関連のポイントカット
    • 2.2.5 ひと休み:ジョインポイントについて考える
    • 2.2.6 ジョインポイントの発生場所に関連するポイントカット
    • 2.2.7 制御フロー関連のポイントカット
    • 2.2.8 アドバイス関連のポイントカット
    • 2.2.9 文脈情報を取り出すポイントカット
    • 2.2.10 Boolean式を使ったポイントカット
    • 2.2.11 論理演算子
    • 2.2.12 名前付きポイントカットの定義
  • 2.3 アドバイス
    • 2.3.1 beforeアドバイス
    • 2.3.2 afterアドバイス
    • 2.3.3 after returningアドバイス
    • 2.3.4 after throwingアドバイス
    • 2.3.5 aroundアドバイス

第3章 AspectJ発展編

  • 3.1 インタータイプ宣言
    • 3.1.1 インタータイプ・メンバー宣言
    • 3.1.2 アクセス制御
    • 3.1.3 declare句
    • 3.1.4 特権アスペクト
  • 3.2 リフレクション
    • 3.2.1 thisJoinPointの利用例
    • 3.2.2 特別な変数thisJoinPointStaticPartとthisEnclosingJoin-PointStaticPart
  • 3.3 より高度なアスペクトの宣言
    • 3.3.1 抽象アスペクトの継承
    • 3.3.2 アスペクトのインスタンス
  • 3.4 織り込み(Weave)処理
    • 3.4.1 ジョインポイントの影
    • 3.4.2 より高度な織り込み処理

第4章 アスペクト指向の応用例

  • 4.1 非機能的関心事
    • 4.1.1 ロギングの変化形
    • 4.1.2 機能的関心事と非機能的関心事
    • 4.1.3 分散共有オブジェクト
    • 4.1.4 メタオブジェクト
    • 4.1.5 キャッシング
  • 4.2 デザインパターン
    • 4.2.1 図形エディタ
    • 4.2.2 Javaによるオブザーバーパターン
    • 4.2.3 AspectJによるオブザーバーパターン
  • 4.3 一時的な機能追加
  • 4.4 テスト
    • 4.4.1 AspectJ によるテストプログラム
    • 4.4.2 検査用メソッドの挿入
  • 4.5 プログラムの自動変換

第5章 いろいろなアスペクト指向システム

  • 5.1 Hyper/J
    • 5.1.1 ハイパースライスとハイパーモジュール
    • 5.1.2 ハイパースライス間の関連づけ
    • 5.1.3 メソッド単位の分割と合成
  • 5.2 JBoss AOP
    • 5.2.1 インターセプタ
    • 5.2.2 アスペクト
    • 5.2.3 アノテーション
  • 5.3 AspectJ 5
    • 5.3.1 アノテーションを含むポイントカット
    • 5.3.2 アノテーションのインタータイプ宣言
    • 5.3.3 アノテーションを使ってアスペクトを書く

第6章 アスペクト指向にまつわる疑問に答える

  • 6.1 結局,アスペクト指向って簡単に言うと何の役に立つのでしょうか?
  • 6.2 アスペクトの抽出は難しい。だからアスペクト指向は普及しないと思います
  • 6.3 アドバイスの衝突をうまく扱えないのは,実用上,問題ではありませんか?
  • 6.4 アスペクト指向は情報隠蔽の原則を破るのでは?
  • 6.5 設計段階でアスペクト指向を考慮する必要はありますか?
  • 6.6 アスペクト指向プログラミングはやりにくい?
  • 6.7 開発の上流行程での,アスペクト指向技術の応用はどうなっていますか?

著者プロフィール

千葉滋(ちばしげる)

1968年生まれ。東京工業大学 大学院情報理工学研究科教授,兼,東京大学 大学院情報理工学系研究科教授。著書に『アスペクト指向入門―Java・オブジェクト指向からAspectJプログラミングへ』(2005年,小社),『やさしいJavaプログラミング―Great Ideas for Java Programming』(2004年,アスキー),『GUIライブラリの仕組み―ソフトウェア設計のケーススタディ』(2001年,朝倉書店)などがある。