以下のUMLの理解に問題があります。
PersistentSet
具体的には、との関係は何ThirdPartyPersistentSet
ですか?PersistentObject
との関係は何ThirdPartyPersistentSet
ですか?
UMLは、C#のアジャイルの原則、パターン、および実践からのものであることに注意してください。MartinC. Robert、MartinMicah2006。第10章
前もって感謝します!
以下のUMLの理解に問題があります。
PersistentSet
具体的には、との関係は何ThirdPartyPersistentSet
ですか?PersistentObject
との関係は何ThirdPartyPersistentSet
ですか?
UMLは、C#のアジャイルの原則、パターン、および実践からのものであることに注意してください。MartinC. Robert、MartinMicah2006。第10章
前もって感謝します!
具体的には、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.
}
}
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;
}
...
}
具体的には、PersistentSet と ThirdPartyPersistentSet の関係は何ですか?
PersistentSet には多くの ThirdPartyPersistentSet があります
PersistentObject と ThirdPartyPersistentSet の関係は何ですか?
ThirdPartyPersistentSet は PersistentObject に依存している (use-a)
UML クラス図のすべての行は、コメントのような破線 (犬の耳のボックス) を除いて、何らかの依存関係を示しています。矢印のない実線は、2 方向 (双方向) の依存関係を示します。
具体的には、PersistentSet と ThirdPartyPersistentSet の関係は何ですか?
http://en.wikipedia.org/wiki/Class_diagram#Aggregation
PersistentObject と ThirdPartyPersistentSet の関係は何ですか?
黒いひし形は、コンポジション、コンテインメントを表します (矢印が指すタイプのフィールドを持つ場合と同様):
PersistentSet
エンティティはエンティティを含みますThirdPartyPersistentSet
。 PersistenSet が破棄されると、含まれているすべての ThirdPartyPersistenSet オブジェクトも破棄されます。
破線は依存関係を表し、矢印で示された型のパラメーターを持つ関数呼び出しを行います):
ThirdPartyPersistentSet
に依存しますPersistentObject