2010-12-06 5 views
1

この新しい質問については、私はUMLを使い慣れていません。このumlダイアグラムで関連するクラスを所有しているのは誰ですか?

システムの図は、このいずれかになります。

私は、UMLの知っているから、それとは集約関係はありませんので、この図では、クラスのどれも関連するクラスのインスタンスを所有することはできません。

これは、ダイアグラムに基づいてJavaのシステムの実装では、外部クラスが関連するクラスのインスタンスを所有している必要がありますか?

ご迷惑をおかけして申し訳ありません。私はそれの上に頭を掻きながら時間を費やした。

答えて

0

UMLはシステムの完全な動作を指定していません。では、オブジェクトが別のオブジェクトを所有しているとしたらどういう意味ですか?また、インスタンスAssociatedClassは他のオブジェクトによって所有されていないルートオブジェクトである可能性があります。

0

あなたが提供した図には実際に関連クラスは含まれていません。あなたが '関連するクラス'という名前のクラスは単なる普通のクラスです。それはまた、何も所有していない(私たちが図で見る)。

何を念頭に置いていたことは関連クラスだった場合には、関連クラスと例の図を見てみましょう:この例では

an example class diagram with association class

を、MilleageCreditは関連クラスです。したがって、Fligh-FrequentFlyerのそれぞれの異なる組み合わせには、1つのMilleageCreditがあります。関連クラスは2つの関連するオブジェクトとの関係を表すので

  • アソシエーションが関連するオブジェクトのいずれかまたは両方が
削除さ
  • クリアされる場合、それは削除される所有権として

    FlightまたはFrequentFlyerのいずれかを削除すると、MilleageCreditも削除されます。 また、FlightをFrequentFlyerから再度リンクすると、MilleageCreditが削除されます。

    良いUMLのドキュメントの多くはオンラインありますが、例えばUML basics: The class diagram

    は、そうでない場合は、問題の詳細情報を提供してください、この情報がお役に立てば幸いです。

  • 1

    最初に解説します。 @ダニエルはそうです、あなたは関連クラスを持っていません。しかし、私はあなたが関連クラスを意味とは思わない:

    これは、図に基づいて、外部のクラスが関連付けられたクラスのインスタンスを所有する必要があり、Javaでシステムの実装ではということですか?

    私が正しく理解しているのはあなたの質問の要点です。インプリメンテーションの観点から、どのクラスにはAssociated Classというインスタンスへの参照リストを含むメンバ変数がありますか?

    再び - 私は右理解している場合 - あなたの質問は、以下のロジックから茎:UMLで

    1. 、「所有権」が一般的に集約の品質(または組成物)として記述されている関係。
    2. Aggregated/Composite PART ClassAssociated Classの関係は、Aggregate/Compositeではなく、単純なバイナリの関連付けです。
    3. したがって、「所有権」プロパティは適用されません
    4. したがって、Associated Classインスタンスへの参照リストを所有しているのは誰ですか?

    これが正しいとすれば、問題は「所有権」という特定の意味になります。 UMLでは厳密には定義されていませんが、「所有権」とは通常、ライフサイクル全体を管理する責任を意味します。

    もっと一般的に言えば、関連が集計でない場合、参加するクラスは互いに参照を保持できないと思います。

    そうではありません。 Aggregated/Composite PART ClassAssociated Classのインスタンスへの参照(または参照のリスト)を保持することは完全に合理的です。逆も同様です。場合によっては両方とも有効です(担当者は一貫性を維持する必要があります)。

    要約:外部クラスがAssociated Classのインスタンスを所有する必要がありますか?いいえ、バイナリアソシエーションの一方または両方のエンドで完全に有効です。リレーションシップのインスタンスを管理します。

    あなたの質問に誤解があった場合は、お詫び申し上げます。

    PS:最終的な観察:集約を使用するときの意味に非常に注意してください。 UML仕様では不正確であることは知られています。コンポジションはより厳密な定義を持ち、コンポジションとプレーンバイナリアソシエーションを使用して、すべてのモデリングシナリオの99%以上をカバーできます。唯一の場所について集約は、他の2つで完全にはカバーされていない明確な意味を持ち、再帰的関係が非周期的でなければならないことを示しています。

    関連する問題