
053
2
コンポーネント設計
コンポーネント設計は、クラス設計よりも高い抽象度で、コンポーネ
ントをどのように構成し、それらを協調させるかを決める設計です。コ
ンポーネントとは具体的に何を指すのでしょうか。
コンポーネントという言葉はよく使われますが、その定義はまちまち
で、文脈によって異なる意味で使われることもあります。一例として
SWEBOK V3.0
※3
では以下のように定義されています(日本語訳は筆
者による)。
A software component is an independent unit, having well-
defined interfaces and dependencies that can be composed and
deployed independently.
ソフトウェア・コンポーネントとは、独立した単位であり、明確に
定義されたインターフェースと依存関係を持ち、独立して構成・配
置することができる。
本書ではコンポーネントを以下のとおり定義します。
本書におけるコンポーネント
コンポーネントとは、特定の振る舞いを提供する責務を持ち、明確
なインターフェースにより定義されたソフトウェアの構成部品のこ
と。しばしば複数のクラスから成り立つ。
Spring FrameworkのようなDIコンテナで管理対象となるようなも
のが、まさにコンポーネントです。図2.2.2にコンポーネントを表す
UMLのクラス図の例を示します。
OrderRepository
というインター
フェースを実装する ...