2013-02-28 10 views
42

以下の2つの図を考えてみましょう。上の方には右端に普通の矢印があり、下の方には左端にダイヤモンドが、右端に平らな矢があります。 great book GoFには、この2種類の図の両方の用途があります。ダイヤモンドサインはUMLクラス図で何を表していますか?

私はダイヤモンドが第二の場合には意味し、このことは、これらの二つのうちの一つはCustomerOrderの間に強い関連性を与えないかを理解したいと思います。

どちらの場合でも、クラスのライフサイクルには、Customerクラスが責任を負いますか?

enter image description here enter image description here

答えて

62

何のダイヤモンドが存在しない場合、我々は、単純な関連を持っています。

ダイアモンドを空のままにすると、それは集約であることを示します。この関係は単純な関連よりも強い。この場合、顧客は注文を集約します。

ダイヤモンドが黒色の場合は、それが合成であることを意味します。これは、集約されたクラスを他のクラスで集約できないため、集約よりもさらに強力です。その "人生"はコンテナによって異なります。

私はそれがで、より明確に少し説明だと思う

+2

+1と素敵なリンク –

5

これは、凝集を意味します。ウィキペディアから:UMLで

、それはグラフィカル含むclass.The集合に 含まれるクラスを接続する単一のラインを持つツリーの 含むクラス端に中空の菱形として表されているが、意味的に あります物理的にはいくつかのより小さなオブジェクトで構成されていますが、多くの 操作ではユニットとして扱われる拡張オブジェクトです。

http://en.wikipedia.org/wiki/Class_diagram

8

顧客と注文顧客が存在しなくなった場合にも注文が行われるからです。したがって、コンテナ(顧客)とそのコンテナ内のインスタンス(注文)との間にライフサイクルの依存関係があります。コンテナが存在しなくなると、そのすべてのインスタンスも同様に動作します。

一方、お客様に書籍があるとします。この場合、「has-a」集約関係があります。顧客が存在しなくなった場合でも、書籍は引き続き利用できるからです。

関連する問題