0

アプリケーションに次のクラスがあります。

  • User
  • Log
  • LogRecord

各ユーザーにはログのリストがあり、各ログは複数のログ レコードで構成されています。ここで、ログ レコードは、それが属するログが削除されるときに削除する必要があるため、各ログは複合です。ユーザーが削除されると、ユーザーが持っているログも削除する必要があります。したがって、これも合成です。

LogRecordこれは、ユーザーがオブジェクトを追加するメソッドを持っている必要があるということですか? またはLog、ユーザーからオブジェクトを取得し、そこからログ レコードを追加/削除してから、ログをユーザーに渡すことはできますか?

つまり、ユーザー コンテキストの外で Log と LogRecords について話すことは「許可されていない」ということですか? コンポジションの定義と、それをどのように行うべきかについて、私はとても混乱しています。

4

1 に答える 1

1

つまり、ユーザー コンテキストの外で Log と LogRecords について話すことは「許可されていない」ということですか?

実際の構成をモデル化する場合、User オブジェクトをインスタンス化した後は Log および LogRecords にアクセスできません ( Java での集約と構成の実装の違いを参照)。

ただし、ここでは別のものをモデル化する必要があると思います。User オブジェクトがインスタンス化された後、LogRecord オブジェクトと、場合によっては Log オブジェクトを作成する必要があります。その場合、これを集約としてモデル化する必要があります。

于 2013-06-23T21:24:38.330 に答える