3

私のグループと私は、ツリー構造を持つプログラムを作成しています。このツリー構造では、カテゴリがそれ自体を含むことができるようにしました。プログラムはあなたの費用に基づいているため、例は次のようになります。

牛乳を 4 個購入しました。ミルクの 4 アイテムは、カテゴリ「ミルク」に配置されます。牛乳の各エントリには、カテゴリが集計される別のクラスの価格 (他の個別情報と共に) があります。

秘訣は、カテゴリ クラスにそれ自体を含めることができるようにすることです。そのため、次のようになります。

カテゴリ「牛乳」はカテゴリ「乳製品」の一部であり、これはカテゴリ「食料品」の一部です。

そのようにしたい理由は、一度に製品のバッチを移動できるようにするためです。したがって、牛乳を「モーニング スタッフ」というカテゴリに移動したい場合は、すべてのカテゴリを移動する必要はなく、カテゴリ全体だけを移動する必要があります。

この図は、現在のカテゴリ クラスがどのようにモデル化されているかを示していますが、これ以上の説明がないとできないと言われました。UML はこれを許可しますか? そうでない場合、UML でどのようにモデル化できますか?

カテゴリ UML 部分

4

2 に答える 2

6

はい、UMLはクラスからそれ自体への関連付けを許可します。同様に、この方法では、集約や構成さえも許可されます。

あなたが投稿した画像は集計を示していますが、あなたの説明から私は構成(塗りつぶされたひし形)を選択しました。カテゴリには親が1つあるか、まったくありません。カテゴリは、その子によってある程度定義されます。カテゴリが削除されると、すべての子も削除されます。

集計と構成のより長い比較は、ここにあります。

于 2012-10-09T10:08:34.190 に答える
3

はい、許可されていますが、ほとんどの場合、アイテム自体ではなく、ポリモーフィズムを維持するために抽象化 (抽象クラスまたはインターフェイス) を集約する方が適切です。例については、複合パターンを参照してください。

これは、インターフェイス分離の原則として知られており、5 つのSOLID 原則の 1 つです。

于 2012-10-10T13:18:08.130 に答える