2

以下のUMLの理解に問題があります。

UML画像

PersistentSet具体的には、との関係は何ThirdPartyPersistentSetですか?PersistentObjectとの関係は何ThirdPartyPersistentSetですか?

UMLは、C#のアジャイルの原則、パターン、および実践からのものであることに注意してください。MartinC. Robert、MartinMicah2006。第10章

前もって感謝します!

4

5 に答える 5

2

具体的には、PersistentSet と ThirdPartyPersistentSet の関係は何ですか?

中実のひし形 <|>-----> はComposition("has a") であり、"全体" が存在するときに "部分" が破壊されます。下の画像では、車を破壊するとキャブレターが破壊されます。

空のダイヤモンド < >-----> はAggregation、「全体」が存在する場合に「部分」が破壊されない可能性がある (「has a」) です。下の画像では、池を破壊しても、必ずしもアヒルを破壊するとは限りません (アヒルが賢い場合は、別の池に移動します)。

構成
(出典: wikimedia.org )

PersistentObject と ThirdPartyPersistentSet の関係は何ですか?

これは依存関係です。詳細については、こちらの回答を参照してください。

では、パラメーターの受け渡しを使用すると、依存関係が関連関係に変わるのはいつですか?

パラメータをローカルに保存すると、依存関係から関連付け関係に変わります。パラメータをローカルでのみ使用すると、依存関係が残ります。

C# コード例:

// Association 
public class ThirdPartyPersistentSet
{
    private PersistentObject _object;
    public ThirdPartyPersistentSet(PersistentObject obj)
    {
        _object = obj; // Store it to a local variable.
        // Now ThirdPartyPersistentSet 'knows' about
        // the PersistentObject.
    }
}

// Dependency
public class ThirdPartyPersistentSet
{
    public ThirdPartyPersistentSet(PersistentObject obj)
    {
        obj.GetSomething(); // Do something with obj,
        // but do not store it to a local variable.
        // You only 'use' it and ThirdPartyPersistentSet
        // does not 'know' about it.
    }
}
于 2011-06-03T18:56:00.423 に答える
1

PersistentSetとThirdPartyPersistentSetの関係は集約です。つまり、PersistentSetには1つ以上のThridPartyPersistenSetインスタンスが含まれています。これは「弱い」関係です。つまり、ThirdPartyPersistentSetのインスタンスはPersistentSetの外部に存在する可能性があります。

PersistentObjectとThirdPartyPersistentSetの関係は依存関係です。つまり、ThirdPartyPersistentSetが機能するには、基本的にPersistentObjectが必要です。

したがって、これをコードに変換するには、PersistentSetに次のようなものが含まれます。

public class PersistentSet
{
    public List<ThirdPartyPersistentSet> Items { get; }
    ...
}

そして、ThirdPartyPersistentSetは次のようになります。

public class ThirdPartyPersistentSet
{
    private PersistentObject _object;
    public ThirdPartyPersistentSet(PersistentObject obj)
    {
        _object = obj;
    }
    ...
}
于 2011-06-01T22:22:02.827 に答える
0

具体的には、PersistentSet と ThirdPartyPersistentSet の関係は何ですか?

PersistentSet には多くの ThirdPartyPersistentSet があります

PersistentObject と ThirdPartyPersistentSet の関係は何ですか?

ThirdPartyPersistentSet は PersistentObject に依存している (use-a)

UML クラス図のすべての行は、コメントのような破線 (犬の耳のボックス) を除いて、何らかの依存関係を示しています。矢印のない実線は、2 方向 (双方向) の依存関係を示します。

于 2011-06-01T22:18:45.743 に答える
0

具体的には、PersistentSet と ThirdPartyPersistentSet の関係は何ですか?

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

PersistentObject と ThirdPartyPersistentSet の関係は何ですか?

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

于 2011-06-01T22:26:37.460 に答える
0

黒いひし形は、コンポジション、コンテインメントを表します (矢印が指すタイプのフィールドを持つ場合と同様): PersistentSetエンティティはエンティティを含みますThirdPartyPersistentSet。 PersistenSet が破棄されると、含まれているすべての ThirdPartyPersistenSet オブジェクトも破棄されます。

破線は依存関係を表し、矢印で示された型のパラメーターを持つ関数呼び出しを行います): ThirdPartyPersistentSetに依存しますPersistentObject

詳細については、ウィキペディアのエントリを参照してください

于 2011-06-01T22:25:45.057 に答える