2017-12-01 14 views
-3

こんにちは私はクラス図を作成しようとしていますが、私の意見はよく分かりません。このuml関係で何が間違っている可能性がありますか

もおそらく関連しないのですか? enter image description here

enter image description here

多分関連?

enter image description here

+0

図はありますか?このように、これは明確ではないからです。 – granier

+0

新しいスキーマと質問がありますが、あなたのコンテキストとスキーマの目的は何ですか?それがなければ、それは非常に良いか非常に悪いことができます:)すべての属性が公開されるように:これは普通ではありません。 – granier

+0

私はこのクラスをpassenger_trainクラスで使用するので、すべての属性はpublicです(クラスのすべてのフィールドにアクセスするには) –

答えて

1

私はコメンターがあなたに説明しようとしているとして、あなたは明らかにそれを求めていないが、私は、あなたの質問を理解すると思います。私はあなたがあなたのクラスの間でどのような関連付けをするべきかを尋ねていると思います。

部分的に理解されているように、構成の関連付けは、構成関係にあるオブジェクトの存続時間が、そのオブジェクトが一部であるオブジェクトに依存することを意味します。

あなたの最初の図は、あなたの列車が列車の停留所で構成されていることを示しているため、列車がない場合は列車が停止しなくなります。これは明らかに真実ではありません。他の列車も同じ停車場に停車する可能性があります。さらに、あなたの列車は、おそらく多くの停留所の集合となる「ルート」オブジェクトに関連付ける予定です。私はあなたのことを詳しく説明しておきます。

次の図は電車が(少なくとも部分的に)乗客から構成されていることを示しているため、電車が破壊された場合は乗客がいなくなります。しかし、乗客は列車を切替えて乗客になることができるので、列車と乗客の構成関係はありません。乗客は列車に乗る、列車には乗客がいるかもしれないし、乗客がいないかもしれないので、あなたは単純な関係(どんな種類のダイヤモンドもない)を持っている。

最後に、使用可能なルートが都市で構成されているという最後の図です。これは妥当である。しかし、ある都市が異なるルートのメンバーかもしれないという問題もあります。そうであれば、ある都市にはそれに関連したルートがいくつかあると言ってもよいでしょう。そのような場合、市の端に白いダイヤモンドがあります。もちろん、それを行うなら、あなたはdistance_between属性を再考する必要があります。 distanceクラスを作成することをお勧めします。このクラス自体は、2つの唯一の2つの都市オブジェクトに関連付けられています。

+0

ボブ、私はあなたの答えにほとんど同意しますが、私が完全に正しいとは思わない細部があります。それは乗客が電車を切替えたり、電車なしで存在することさえあっても構わないということではありません。私はそれがすべきだと言っているわけではありません、それだけが組成物を使用しない理由であってはなりません。カーホイールの古典的なケースでは、車を1台の車から次の車に移動することができます。また、車を使わずに別の場所に車輪を取り付けて保管することもできます。 –

+0

@GeertBellekens私が車輪の例を理解しているので、それは文脈の問題です。車や車輪は車の工場で合成され、廃品やサービス部門で集約されることがあります。車輪は自動車とは独立した物理的な現実に存在することはもちろんですが、車の工場では、論理的な車輪がプロセスの状況によっては車とは独立して存在しないことがビジネス上の意味をなす可能性があります。もちろん、それはジャンクヤードの文脈ではあまり起こりにくいでしょう。言われたことは、列車旅客連合が構成されてはならない理由は何だと思いますか? – BobRodes

+0

私が推測する2つの理由。 1.私は列車と乗客の間にセマンティックな**全パート**の関係は見当たりません。列車は多数の乗客に関連していますが、列車は乗客で構成されているとは決して言いません。 2.あなたがどのようにモデル化するかに応じて、乗客は複数の列車を乗ることができるので、複数の列車の一部であり、構成に関する規則に違反しています(最大で1つあります)。 –

関連する問題