パッケージ


モデル要素の集合

パッケージは、モデルの集合であり、要素のコレクションです
実装レベルでは、名前空間などの集合としてパッケージされることでしょう

パッケージは、モデル要素を内部に所有します
これは、構成管理やアクセス制御の基本となる最も外の空間です
パッケージは、他のパッケージを所有することもできるため
パッケージの階層は、厳密な木構造となります

パッケージは、大きな矩形とその左上隅に小さな矩形(タブ)で構成されます
フォルダーアイコンに極めて近い形です

パッケージの内容は、大きな矩形の中に表示します
パッケージ名は、通常はタブに記述されますが
パッケージの内容が非表示になっている場合は、矩形中央に名前を表示します



これは、パッケージを表した図です
例えば event パッケージは、java.awt.event という構造になっています
大規模システムの開発の場合、機能ごとに要素をパッケージ化するべきです

ただし、巨大なシステムは膨大な数のパッケージとなります
上記した記法では、関係を表す時に便利なのですが
パッケージ間の階層関係を表すには適切ではないと考えられます

そこで、階層関係は円の中にプラス記号 + を書いたアイコンを
パッケージの親となるコンテナ側の終端に配置した直線で結ぶことができます



こちらの方が、パッケージの構造を見るときには便利でしょう


アクセスと移入関係

パッケージ要素の関係は、主にアクセスと移入に大別することができます
アクセスは、パッケージ要素が目標パッケージ要素にアクセスすることを表し
移入は、パッケージに目標パッケージの名前空間を追加することを表します
ただし、当然非公開の要素は他のパッケージから見ることはできません

パッケージ間の関係は、矢印つきの破線で結ばれます
アクセスは 《access》ステレオタイプを使って
移入は 《import》ステレオタイプを使って示します



pack.graphics パッケージは、pack.Color パッケージを移入し
pack.text パッケージにアクセス可能であることを表しています


クラスパス

同一のパッケージ間の要素は互いに可視状態にあります
しかし、他のパッケージの要素は移入されていない限り見えません

要素型のパッケージにアクセスするには、パッケージ名を指定する必要があります
他のパッケージの型をクラスで用いるには、次の構文を使います

パッケージ名 :: クラス名

他のパッケージのクラスを参照する必要がある場合は
そのクラスのパッケージ名も含めたフルネームを記述するべきでしょう



ImageList の属性では System::Drawing パッケージや
System::Windows::Forms パッケージなどを参照していることが分かります



前のページへ戻る次のページへ