
2006/8/30
■ パッケージとは
パッケージには次のような役割があります。
(1)クラスの分類
Javaでは必ずパッケージを利用してクラスを整理します。パッケージは、クラスを利用しやすいように分類し整理するための箱を提供します。例えば、ファイルアクセス関連のパッケージ、ネットワーク関連のパッケージなどです。
(2)クラス名の衝突の回避
- - PR -
このドメイン構造をパッケージ構造に対応付けることにより、世界中で唯一のクラスとして特定することができます。例えば、@ITなら「jp.co.atmarkit. business」のようにドメイン名を逆さまにしてパッケージの階層構造を構築します。このようにすれば、businessパッケージをどこで再利用しても名前が重複することはありません。
(3)アクセス制御
パッケージは外部から内部のクラスへのアクセスを制御します。クラスや操作にアクセス指定子(public、private等)を指定することにより、パッケージの外からのアクセスを制限することができます。パッケージはどのように使われるのでしょうか。パッケージは主に、クラスライブラリやレイヤ化などで使用されます。
・レイヤ化
パッケージによりシステムの階層化構造を定義します。例えば、プレゼンテーション層、サービス層、ドメイン層、永続化層など役割のレベルが同じクラスを層として定義したものが階層構造で、これをレイヤ化するといいます。このようにパッケージを垂直方向に利用するとシステムを階層化することができ、これを階層化アーキテクチャといいます。
・ライブラリ化
互いに関連しているクラスなどをパッケージとしてまとめることにより、必要なクラスを簡単に探し出せるようにライブラリ化します。例えば、Javaの標準ライブラリでは、ファイルの読み書きなどのためのクラスはパッケージjava.ioに、ネットワーク関連のクラスはパッケージjava.netに、というように機能別に分かりやすくまとめています。
また、パッケージは、例えばユースケース単位でのサービスの分類などにも、利用することができます。固有な構造であるユースケースを実現するクラス群は、パッケージなどを利用してまとめます。
コンポーネント化でクラスをすっきり整理
| Page1 パッケージとは |
|
| Page2 サブシステムとは |
保守性・拡張性に優れたシステムを作る バックナンバー 連載インデックスへ»
- 第1回 ソフトウェアにおける保守性と拡張性の定義
- 第2回 オブジェクト指向で実現できる保守性・拡張性
- 第3回 変更に耐えるシステム構造とモデルの関係(上)
- 第4回 変更に耐えるシステム構造とモデルの関係(下)
- 第5回 コンポーネント化でクラスをすっきり整理
- 第6回 使いやすくて、変化に強いコンポーネント
- 第7回 階層アーキテクチャの利点は、複雑さの減少
- 第8回 ドメイン層に最適なアーキテクチャを考える
- 第9回 「データの永続性」に配慮した設計
- 第10回 ドメイン層をシンプルに作るためのO-Rマッピング
- 第11回 キミの設計に「トレーサビリティ」はあるか
- 最終回 システム開発はなぜ楽にならないか?
ホワイトペーパー(TechTargetジャパン)
|
|

