ガイドライン: 設計におけるインポート依存関係
トピック
パッケージ間のインポート依存関係の処理は、オブジェクト モデルの構造化における重要な点です。パッケージのクラスの中に、ほかのパッケージのクラスに誘導可能な関係を持つものがある場合、そのパッケージは別のパッケージに依存するといいます。このような依存関係を表現するには、あるパッケージからそれが依存する別のパッケージへのインポート依存関係を使用します。

パッケージ間の依存関係は、インポート依存関係で表現します。
インポート依存関係の抽出は、以下の方法で行います。
- オブジェクト モデルの作業を始める前に、作業中のガイドラインとして使用する依存関係の概要を作成します。
- モデルが完成したら、それを使用して依存関係が実際に存在することを示します。これには、オブジェクト モデルのインポート依存関係の更新が伴います。
- モデルを早くからパッケージに分割した場合は、インポート依存関係を使用して依存関係が可能な部分を示します。
- パッケージがどのように相互依存するかは、システムの変更しやすさに影響を与えます。次のガイドラインに従えば、オブジェクト モデルは変更が簡単になります。
- 各パッケージの外部から内部のクラスへの参照は最小限にとどめます。多くのクラスを参照すると、パッケージの責務が多くなりすぎ、2 つに分割する必要が生じます。
- 各パッケージで依存するパッケージは、できるだけ少なくします。
- 各パッケージを別々にテストします。つまり、依存先のパッケージをシミュレーションすることで、パッケージのテストを行うことができなければなりません。ほかのパッケージが完全に、またはほとんど完全に実装されていることが必要であってはなりません。パッケージを個別にテストできれば、システム開発と各パッケージの保守が容易になります。
- オブジェクト モデルの共通な部分を独立したパッケージとし、これにほかのパッケージが依存するようにします。このようなパッケージがある場合は、そのパッケージに変更を加えるとシステム内の複数の部分に影響が出ることがあるので、リリースの処理には十分な注意が必要です。
例
リサイクル マシンの顧客パネル クラスとオペレータ パネル クラスに共通する部分が見つかったものとします。この共通サービスを新しいクラスであるパネルに割り当て、新しいパッケージであるパネルズに入れます。ほかの 2 つのクラスでは、このクラスを参照することで共通サービスを使用できます。これらのクラスは 2 つの独立したパッケージに属しているため、2 つのパッケージが新しいパッケージに依存することになります。このように冗長性を取り除いていけば、共通機能の変更が 1 か所だけで済むようになります。
|