2011-08-20 13 views
0

"Delegate"のインスタンスを含むクラス "Foo"がある場合。 Fooの委譲メソッドはそうのようなクラス「代理人」への呼び出し:私はUMLでのFooクラスを描画するときUML依存関係 - ここで使用する必要がありますか?

public class Foo { 
    private Delegate delegate = new Delegate(); 

    public void bar() { 
     delegate.bar(); 
    } 
} 

、それはそれとDelegateクラス間の依存関係(矢印付き点線)を持っている、または希望でしょう代わりにComposition関係を表す線がありますか?

答えて

1

UMLについての素晴らしい点は、余裕があることですが、あなたのケースでは、IMHOは依存性が優れています。

あなたはFooのプロパティとしてdelegateを持っていないので、あなたのシステムを見ている誰もが、実際に(とりわけ)Fooは、デリゲートで構成されていたことを気にしないだろう(何getDelegateはありません)。

また、ダイアグラムからコードを生成するツールにあなたのUMLダイアグラムが与えられている場合は、そうすることができます。 :)

ダイアグラムを書いている人(または代理人)には何が正しいと感じますか?

+0

私は強力な指標としてゲッターの不在を使用しません。私はそれほどUMLの依存関係はそれほど好きではありませんでした。 OOの基本的なことは十分にカバーされているので、私は非OOのモデリングを行うときに主に使用します。しかし、誰もFooが内部的に何をしているかを知る必要がなければ、私は論じません;) – ShiDoiSi

0

この場合、私は構成関係を使用します。 FooにDelegateのインスタンスが含まれるかどうかをまだ決めていない場合、依存関係は問題ありません。しかし、すでにその決定を下しておけば、追加情報を隠すことに利点はありません。実際には誤解を招く可能性があります(読者はそれが封じ込めではないと考えるかもしれません。 。

+0

こんにちは。 Foo *にDelegateのインスタンスが含まれることになりました。だから、それは依存関係を維持する必要がありますか?ありがとう – Joeblackdev

+0

その場合、私は構成関係を使用します。 –

関連する問題