答えて
私はコメンターがあなたに説明しようとしているとして、あなたは明らかにそれを求めていないが、私は、あなたの質問を理解すると思います。私はあなたがあなたのクラスの間でどのような関連付けをするべきかを尋ねていると思います。
部分的に理解されているように、構成の関連付けは、構成関係にあるオブジェクトの存続時間が、そのオブジェクトが一部であるオブジェクトに依存することを意味します。
あなたの最初の図は、あなたの列車が列車の停留所で構成されていることを示しているため、列車がない場合は列車が停止しなくなります。これは明らかに真実ではありません。他の列車も同じ停車場に停車する可能性があります。さらに、あなたの列車は、おそらく多くの停留所の集合となる「ルート」オブジェクトに関連付ける予定です。私はあなたのことを詳しく説明しておきます。
次の図は電車が(少なくとも部分的に)乗客から構成されていることを示しているため、電車が破壊された場合は乗客がいなくなります。しかし、乗客は列車を切替えて乗客になることができるので、列車と乗客の構成関係はありません。乗客は列車に乗る、列車には乗客がいるかもしれないし、乗客がいないかもしれないので、あなたは単純な関係(どんな種類のダイヤモンドもない)を持っている。
最後に、使用可能なルートが都市で構成されているという最後の図です。これは妥当である。しかし、ある都市が異なるルートのメンバーかもしれないという問題もあります。そうであれば、ある都市にはそれに関連したルートがいくつかあると言ってもよいでしょう。そのような場合、市の端に白いダイヤモンドがあります。もちろん、それを行うなら、あなたはdistance_between
属性を再考する必要があります。 distance
クラスを作成することをお勧めします。このクラス自体は、2つの唯一の2つの都市オブジェクトに関連付けられています。
ボブ、私はあなたの答えにほとんど同意しますが、私が完全に正しいとは思わない細部があります。それは乗客が電車を切替えたり、電車なしで存在することさえあっても構わないということではありません。私はそれがすべきだと言っているわけではありません、それだけが組成物を使用しない理由であってはなりません。カーホイールの古典的なケースでは、車を1台の車から次の車に移動することができます。また、車を使わずに別の場所に車輪を取り付けて保管することもできます。 –
@GeertBellekens私が車輪の例を理解しているので、それは文脈の問題です。車や車輪は車の工場で合成され、廃品やサービス部門で集約されることがあります。車輪は自動車とは独立した物理的な現実に存在することはもちろんですが、車の工場では、論理的な車輪がプロセスの状況によっては車とは独立して存在しないことがビジネス上の意味をなす可能性があります。もちろん、それはジャンクヤードの文脈ではあまり起こりにくいでしょう。言われたことは、列車旅客連合が構成されてはならない理由は何だと思いますか? – BobRodes
私が推測する2つの理由。 1.私は列車と乗客の間にセマンティックな**全パート**の関係は見当たりません。列車は多数の乗客に関連していますが、列車は乗客で構成されているとは決して言いません。 2.あなたがどのようにモデル化するかに応じて、乗客は複数の列車を乗ることができるので、複数の列車の一部であり、構成に関する規則に違反しています(最大で1つあります)。 –
- 1. 何が間違っている可能性がありますか? fopenのバグ
- 2. 何が間違っている可能性がありますか?
- 3. AuthUserFileが機能していない、何が間違っている可能性がありますか?
- 4. このIF条件文で何が間違っている可能性がありますか?
- 5. は定義が間違っている可能性があり
- 6. ValueError:配列が間違っている可能性がありますか?
- 7. LIBSVMによる分類で100%の精度 - 何が間違っている可能性がありますか?
- 8. 解析エラー(インデントが間違っている可能性があります)
- 9. SSLハンドシェイクの失敗 - ここで間違っている可能性がありますか?
- 10. 検証メッセージがクリアされない、何が間違っている可能性があるか
- 11. バインディングとトリガが機能しない、間違っている可能性があります
- 12. 制御文のhaskell解析エラー(インデントが誤っているか、かっこが間違っている可能性があります)
- 13. Haskellの構文解析エラー(インデントが誤っているか、かっこが間違っている可能性があります)
- 14. MonoTouchでペン先を間違ってロードするとメモリリークが発生する可能性がありますか?
- 15. Haskellで関数が変わっている可能性があります
- 16. UML依存関係 - ここで使用する必要がありますか?
- 17. 間違ったパーティションキーがCosmosDbの過度のパーティショニングを引き起こす可能性がありますか?
- 18. sIFR 3 - sifr-config.jsが実行されていない可能性がありますか?何が間違っているのかわからない
- 19. フレックスコンテナの行間に何が生じる可能性がありますか?
- 20. PHP:move_uploaded_file問題。ここで何が間違っていますか?
- 21. MySQLクエリ!ここで何が間違っていますか?
- 22. トップが間違ったメモリ使用量を示している可能性があります
- 23. イメージピクセルのこのループで何が間違っていますか?
- 24. このjのクエリで何かが間違っています
- 25. ReSharper "可能なNullReferenceException"がFileInfoで間違っていますか?
- 26. このクエリで何が間違っているのですか
- 27. この式で何が間違っているのですか?
- 28. DjangoでProgrammingErrorを実行して、新しいモデルインスタンスをデータベースに追加するときに、何が間違っている可能性がありますか?
- 29. このコードで何が間違っていますか?
- 30. このコードで何が間違っていますか?
図はありますか?このように、これは明確ではないからです。 – granier
新しいスキーマと質問がありますが、あなたのコンテキストとスキーマの目的は何ですか?それがなければ、それは非常に良いか非常に悪いことができます:)すべての属性が公開されるように:これは普通ではありません。 – granier
私はこのクラスをpassenger_trainクラスで使用するので、すべての属性はpublicです(クラスのすべてのフィールドにアクセスするには) –