2009-07-28 9 views

答えて

1
   MyServer 
       | 
       | 
       | 
       Map 
       | 
       | | 
       | | 
    MyClientTypeKey MyClientType 

上記のように単純ではありませんか?

  • myserverが地図
  • 有するものassoication 1つを有するマップがキーと値の両方を持つ1に多くの関連を有しています。
+1

それは私の心にも最初に来たことですが、マップはクラスに値するものではないと感じています。それは単なる封じ込めの方法です。私は知らない、ちょうどいい気分ではない。 – gooli

+0

しかし、MyServerに直接関連付けられているキーと型クラスを持っているだけで、それらがどのように関連しているかはわかりません。 Mapはコンテナですが、キーとタイプの関係も示しています。 – Mark

7

私はMyClientからMyClientへの関連性をMyClientの終端に0の多重度で示しています。他のすべては実装の詳細であり、プログラマに委ねられます。

+0

これは2つの正解の一つです。もう一つは@Kruです。 –

2
  MyServer 
       | 
       |* 
      T1toT2 
      / \ 
      1/  \1 
     Key  Value 

Markのソリューションとの違いは、サーバーがコンテナと多くの関係を持つことです。それはまた、Eclipse Modeling Framework (EMF) proposes to implement mapsの方法です。

キーが一意である(ステレオタイプを使用する)ことを指定するなど、UML固有のものをいくつか追加することもできます。

1

まず第一に私といくつかの人は、UMLにはいくつかの初期のバージョンと同様にいくつかの基本的なコレクションタイプが含まれるべきだと思います。彼らは、しかし、それは本当に重要でない私見ですの種類にあまり重要私見いますので、私はちょうどそれをモデル化するだろう、「EMFの方法は、」右思わ

... OCLから例えば取ることができます関連クラスとして。これにより、通常のクラスを使用してキャプチャできるマップ固有の制約(たとえば多重度など)はすべてキャプチャできますが、そのクラスは他のクラスと同じように重要ではありません。

23

あなたは資格の関連付けを使用することができます。

┌──────────┐    1 ┌───────┐ 
│ MyServer │Key│───────────│ Value │ 
└──────────┘    └───────┘ 

参照:http://etutorials.org/Programming/UML/Chapter+6.+Class+Diagrams+Advanced+Concepts/Qualified+Associations/資格の関連付けが多様に変化することも

注意(ASCIIを使用して描画することは困難である原因):

┌──────────┐   0..* ┌───────┐ 
│ MyServer │───────────────│ Value │ 
└──────────┘    └───────┘ 

┌──────────┐    1 ┌───────┐ 
│ MyServer │Key│───────────│ Value │ 
└──────────┘    └───────┘ 

上部は、サーバーから0-n値への関連付けを示しています。対照的に、修飾された関連付けでは、指定されたキーは1つの値にのみ関連付けられ、キーには値がないということが示されます。

+2

これは2つの正解の一つです。もう一つはチンパンジーです。 –

+0

MyServerが操作と属性を表示するために「展開」された場合、マップ関係をモデル化するために、MyServerの属性コンパートメントにはどのようなものがありますか? –

1

クルさんの答えは最高ですが、それでもまだ地図だけがヒントです。

私はそれがあなたのダイアグラムが座っている抽象化のレベルに依存すると主張します。それが比較的高い場合、私はチンパンジーの反応に行くだろう。それは比較的低いだとあなたが本当に意図的に実装関連の詳細を示す、地図を表示する必要がある場合は、私は次のように行きたい:

マップは、コードで実装されてどのように
  MyServer 
       | 
       | 
       Map     
       | 
       |* 
      T1toT2 
      / \ 
      1/  \1 
     Key  Value 

は全く無関係である(T1toT2ラン実際には存在しない可能性があります)。地図を表示または指定するには、あなたが本当に本当に必要がある場合は

Gabreilで述べたように、これはまた、関連クラスにもちろん

  MyServer 
       | 
       | 
       Map     
       | 
       |* 
      T1toT2 
       | 
       | 
      1--------1 
     Key  Value 

を使用してモデル化することができることが唯一の問題です。

関連する問題