回答:
画像についてより詳しく説明するために、画像に番号を付けました。うまくいけば、これは私の文章をより明確にするのに役立ちます。
ここで実際に使用されている行には、関連(1)、構成(4-> 2)、継承(3)の3つのタイプがあります。
2つのクラスを結ぶ実線は、間Client
や間など、BookComponent
単なる関連関係です。これは多くの場合、クラスが知っている(おそらくメソッドの引数として受け取るのと同じように)か、別のクラス(たとえばインスタンス変数のように)を持っていることを示すために使用されます。装飾がない場合、または両端に矢印がある場合、関係は双方向です。2つのクラスは関係を共有し、互いを認識しています。図の1行目など、場合によっては、関係に方向性があります。Client
クラスは知っているBookComponent
が、反対はと本当ではないBookComponent
持っているかを知りませんClient
。多重度やクラスの役割など、関連関係に表示できる他の注釈もあることに注意してください。
次の行はに接続BookComposite
する行ですBookComponent
。これはClient
、との間の境界線によく似た関連付けBookComponent
です。ただし、2と4のラベルを付けたポイントの注釈は、関係に関する追加情報を追加します。ポイント1の線、ポイント2の矢印は同じことを意味します。インスタンスBookComposite
は認識していBookComponent
ますが、逆はありません(方向関係)。ポイント4の注釈は、集約関係を示します- BookComposite
のコレクションですBookComponent
。凝集があることを示しているのでしかし、それは、強力な関係(強い組成の関係のように)ではありませんBookComponent
外の場所で示すことができますBookComposite
(あなたが必要としないBookComposite
持っていますBookComponent
)。
注意すべき点は、方向の関連付けを示すために使用される矢印は、通常、この画像に示すように黒一色の矢印ではないことです。私は通常v
、画像に表示されているものよりもに近い白抜きの矢印として表示されます。
最後に、3というラベルの付いた点は、質問で述べた継承関係です。
UMLモデリングの詳細に興味がある場合は、UML Distilledの購入をお勧めします。Martin Fowlerによる優れた本であり、クラス、シーケンス、オブジェクト、パッケージ、デプロイメント、ユースケース、ステートマシン、アクティビティ、コミュニケーション、複合構造、コンポーネント、コラボレーション、相互作用の概要、およびタイミング図をカバーしています。
あなたの写真はいくつかの異なる関係を示しています。
ClientクラスとBookComponentクラス間の関係は、包含関係です。つまり、クライアントにはBookComponentのインスタンスが含まれています。
BookCompositeとBookComponentには2つの関係があり、開いた矢印は汎化関係です(つまり、BookComponentはBookCompositeを一般化します。または、BookCompositeはBookComponentを特殊化/派生します)。テールにダイヤモンドが付いたクローズドアロヘッドは集合体です。つまり、BookCompositeにはBookComponentのコレクションが含まれています。ダイヤモンドが満たされていないという事実も重要です。これは、含まれているBookComponentsのライフサイクルが、含まれているBookCompositeのライフサイクルに関連付けられていないことを意味します。Aggregationの代わりに入力された場合は、Compositionであり、BookCompositeが破棄された場合は、BookComponentsも同様です