如何使用嵌套复合对象?

时间:2013-06-23 20:53:35

标签: c# java

我的申请中有以下课程:

  • User
  • Log
  • LogRecord

每个用户都有一个日志列表,每个日志包含多个日志记录。现在,由于日志记录应该在删除它所属的日志时删除,因此每个日志都是一个复合记录。删除用户时,还应删除用户拥有的日志。所以它也是一个复合材料。

这是否意味着用户需要一个添加LogRecord对象的方法?或者我是否可以从用户那里获取Log对象,然后从中添加/删除等日志记录,然后将日志传回给用户?

我的意思是,这是否意味着我不被“允许”在用户上下文之外谈论Log和LogRecords?我对作文的定义以及应该如何完成感到困惑。

1 个答案:

答案 0 :(得分:1)

  

我的意思是,这是否意味着我不被“允许”谈论Log和   用户上下文之外的LogRecords?

如果要对实际合成建模,则在实例化User对象后将无法访问Log和LogRecords(请参阅Implementation difference between Aggregation and Composition in Java)。

但是,我认为你想在这里建模一些不同的东西。在实例化User对象后,您可能希望创建LogRecord对象并可能创建Log对象。你必须将其建模为聚合。