2

プロジェクトのUMLダイアグラムを作成していますが、疑問があります...例を使用して説明します。

public class Book{...}

public class Library{
    private ArrayList<Book> books;

    public void insert(Book b){...}

    public Book get(Book b){...}
    }

この場合、BookとLibraryの間に集約がありますが、依存関係もありますよね?集約は、「親」クラスに「子」クラスが含まれる関係です。代わりに、依存関係は、クラスがパラメーターまたは戻りタイプによって別のクラスを使用する場合です。ここで、クラスAに別のクラスBのオブジェクトが含まれている場合、BのオブジェクトがクラスAのオブジェクトに何らかの方法で渡された場合、唯一の方法はメソッド(またはコンストラクター)を使用することです。したがって、集約には依存関係が含まれますか?

PS:私の英語が下手でごめんなさい

4

2 に答える 2

4

あなたの教授に敬意を表して、私は同意しません。Libraryが含まれているためBooks(意味的にも構文的にも)、ダイアグラムに集計があります。

UML依存関係とは、「一部のUML要素または要素のセットは、仕様または実装のために他のモデル要素を必要とする、必要とする、または依存する」ことを意味します(私のお気に入りのUML参照サイトuml-diagrams.orgから)。2つの要素の間に集約リンクを配置する場合、一方が他方に依存することはすでに述べられているため、それらの間に依存関係を追加することは冗長です。

于 2012-09-12T07:22:05.610 に答える
1

私はUMLの専門家ではありませんが、「UML in a Nutshell」で本当に気に入ったのは、UMLは誰にとっても直感的な場合にのみ役立つという文です。

そうは言っても、図を複雑にしすぎないことをお勧めします。すべてを図に表示できるわけではなく、表示する必要もありません。あなたの場合、にLibraryはいくつかBooksの、集約/構成の場合があります(あなたの説明に記載されていない他の詳細に依存します)。集計がそれを暗示しているので、これら2つのクラス間の依存関係を述べる必要はありません。私の理解では、「依存関係」は、間接的な関係、たとえば実行時の依存関係を記述したい場合に役立ちます。

于 2012-09-11T18:25:28.407 に答える