2

下の図では、クラス「Copy」とクラス「Book」が集約を示しています (BookにはCopy があります)。他のすべてのクラスは、クラス「コピー」のサブクラスです。ここで、Memberクラス「Copy」のサブクラス「Lending」と「Borrow」にアクセスする必要があるクラスがあるとします。' ' クラスが知っておくべき唯一のことMemberは、"accessionNumber" です。

これをコードで考えると、私の " Book" クラスには " " の配列が含まれていCopyます。

ここに画像の説明を入力

特定の本の登録番号を知るにはどうすればよいですか?

copies配列の 3 冊目の「accessionNumber」が必要だとしましょう。しかし、配列はクラス内にあり、クラスからクラスBookへの接続はありません。BookCopy

接続を戻すとしたら、それは「コピーには本がある」のようなものでしょうか、それともより意味のある「主題には生徒がいる」のようなものでしょうか (有名な集計の例である「生徒には主題があります) 」。

4

1 に答える 1

1

接続を作成すると、「コピーには本があります」のようになります。

いいえ、そうではありません。単純な依存関係(たとえば、C ++の参照または非所有ポインター)は、集約または構成のより強力な関連付けから得られる「hasa」または「ownsa」関係ではありません。それはあなたがここで望むもののように聞こえます。

于 2013-01-24T16:37:22.793 に答える