効率的で美しいアプリケーションを設計するためには、複雑な仕組みを抽象化、単純化するデザインパターンの利用が不可欠です。開発アプリケーションが大規模になるほど、そして複雑になるほど、その恩恵も大きくなります。本書はJ2EEに特化したデザインパターンの解説書です。拡張性、柔軟性、そしてパフォーマンスに重点を置いた新しいデザインパターンを多数紹介するだけでなく、実際にどのように適用すればよいのか、多くのサンプルコードを例示しながら、J2EEアプリケーション開発の極意を説いています。J2EE開発者の座右の書となる決定版です。
J2EEデザインパターン
William Crawford, Jonathan Kaplan 著、有限会社 福龍興業, 佐藤 直生 監訳、木下 哲也 訳
- TOPICS
- Programming
- 発行年月日
- 2004年03月
- PRINT LENGTH
- 404
- ISBN
- 4-87311-178-1
- 原書
- J2EE Design Patterns
- FORMAT
関連ファイル
目次
監訳者まえがき
はじめに
1章 Javaエンタープライズデザイン
1.1 デザインパターン
1.1.1 パターンの分析
1.1.2 パターンの提示
1.2 J2EE
1.3 アプリケーション層
1.3.1 コンポーネントベースの開発
1.4 主要な開発コンセプト
1.4.1 拡張性
1.4.2 スケーラビリティ
1.4.3 信頼性
1.4.4 適時性
1.4.5 以降の章では
2章 UML
2.1 UMLの起源
2.2 『荒野の7人』
2.3 UMLとソフトウェア開発ライフサイクル
2.4 ユースケース図
2.5 クラス図
2.5.1 クラス間の関係
2.5.2 クラス図を使用したパターンの記述
2.5.3 オブジェクト
2.5.4 パッケージ
2.6 相互作用図
2.6.1 シーケンス図
2.6.2 コラボレーション図
2.7 アクティビティ図
2.8 配置図
3章 プレゼンテーション層のアーキテクチャ
3.1 サーバサイドのプレゼンテーション層
3.2 アプリケーション構造
3.2.1 MVC(Model-View-Controller)パターン
3.2.2 J2EEにおけるMVCの使用
3.3 中核コントローラの構築
3.3.1 Front Controllerパターン
3.3.2 フロントコントローラサーブレット
3.3.3 Decoratorパターン
3.3.4 フロントコントローラの装飾
4章 高度なプレゼンテーション層デザイン
4.1 Webアプリケーションにおける再利用
4.2 コントローラの拡張
4.2.1 Service to Workerパターン
4.2.2 J2EEにおけるService to Worker
4.3 高度なビュー
4.3.1 View Helperパターン
4.3.2 ビューヘルパの実装
4.3.3 Composite View
5章 プレゼンテーション層のスケーラビリティ
5.1 スケーラビリティとボトルネック
5.2 コンテンツキャッシング
5.2.1 コンテンツコンポーネントのキャッシング
5.2.2 Asynchronous Pageパターン
5.2.3 動的なコンテンツキャッシング
5.2.4 Caching Filterパターン
5.2.5 キャッシングフィルタの実装
5.3 リソースプール
5.3.1 Resource Poolパターン
5.3.2 リソースプールの実装
6章 ビジネス層
6.1 ビジネス層
6.1.1 ビジネス層のコンポーネント
6.2 ドメインオブジェクト
6.2.1 ドメインオブジェクトモデル
6.2.2 オブジェクトモデルの構築
6.2.3 Composite Entityパターン/Entity Façdeパターン
7章 層と層の間の通信
7.1 Data Transferパターン
7.1.1 データ転送オブジェクト
7.1.2 Data Transfer Hashパターン
7.1.3 行セットDTO
8章 データベースとデータパターン
8.1 データアクセスパターン
8.1.1 Data Access Objectパターン
8.1.2 DAO Factoryパターン
8.1.3 レイジーロード
8.1.4 IsDirtyパターン
8.1.5 プロシージャアクセスオブジェクト
8.2 Primary Keyパターン
8.2.1 PK Block Generatorパターン
8.2.2 Stored Procedures for Primary Keysパターン
8.3 オブジェクトリレーショナルマッピング
8.3.1 複雑なクラス関係
8.3.2 Table Inheritanceパターン
8.3.3 Serialized Entityパターン
8.3.4 Tuple Tableパターン
9章 ビジネス層のインタフェース
9.1 ビジネスロジックの抽出
9.1.1 Business Delegate
9.1.2 Business Delegate Factoryパターン
9.2 リモートサービスへのアクセス
9.2.1 Service Adapterパターン
9.2.2 Session Façdeパターン
9.3 リソースの特定
9.3.1 Service Locatorパターン
9.3.2 Service Locatorパターンの変形型
9.3.3 サービスロケータの実装
10章 エンタープライズにおける並行処理
10.1 トランザクション管理
10.1.1 トランザクションについて
10.1.2 ACID Transactionパターン
10.1.3 トランザクションとオブジェクト
10.1.4 Transactional Contextパターン
10.2 一般的な並列処理パターン
10.2.1 リソースのロック
10.2.2 Optimistic Concurrencyパターン
10.2.3 Pessimistic Concurrencyパターン
10.3 並列処理の実装
10.3.1 Lockable Objectパターン
10.3.2 Lock Managerパターン
10.3.3 Version Numberパターン
11章 メッセージング
J2EEでのメッセージング
非同期のメッセージング対Webサービス
11.1 メッセージングと統合
11.1.1 メッセージングの種類
11.2 メッセージ配信パターン
11.2.1 Point-to-Point Distributionパターン
11.2.2 Publish-Subscribeパターン
11.2.3 Malformed Message Channelパターン
11.3 メッセージタイプ
11.3.1 イベントメッセージ
11.3.2 ドキュメントメッセージ
11.3.3 コマンドメッセージ
11.4 メッセージの関連付け
11.4.1 Sequenced Messagesパターン
11.5 メッセージクライアントパターン
11.5.1 Message Handlerパターン
11.5.2 Polling Consumerパターン
11.5.3 Event-Driven Consumerパターン
11.5.4 Message Façdeパターン
11.5.5 Message Selectorパターン
11.5.6 Competing Consumersパターン
11.6 メッセージングの統合
11.6.1 Pipes and Filtersパターン
11.6.2 Content-Based Routingパターン
11.6.3 Content Aggregatorパターン
11.6.4 Control Busパターン
11.7 参考文献
12章 J2EEアンチパターン
12.1 アンチパターンの原因
12.2 アーキテクチャのアンチパターン
12.2.1 Excessive Layeringアンチパターン
12.2.2 Leak Collectionアンチパターン
12.3 プレゼンテーション層のアンチパターン
12.3.1 Magic Servletアンチパターン
12.3.2 Monolithic JSPアンチパターンとCompound JSPアンチパターン
12.3.3 Overstuffed Sessionアンチパターン
12.4 EJBアンチパターン
12.4.1 Everything Is an EJBアンチパターン
12.4.2 Round-Trippingアンチパターン
12.4.3 Stateful When Stateless Will Doアンチパターン
付録A プレゼンテーション層のパターン
A.1 アーキテクチャパターン
A.2 高度なアーキテクチャパターン
A.3 スケーラビリティパターン
付録B ビジネス層のパターン
B.1 ビジネス層のパターン
B.2 データ転送パターン
B.3 データベースパターン
B.4 ビジネス層インタフェースパターン
B.5 並列処理パターン
付録C メッセージングパターン
C.1 メッセージ配信パターン
C.2 メッセージクライアントパターン
C.3 メッセージング統合パターン
付録D J2EEアンチパターン
D.1 アーキテクチャのアンチパターン
D.2 プレゼンテーション層のアンチパターン
D.3 ビジネス層のアンチパターン
索引