【问题标题】:Implementing Connections within Aggregation classes在聚合类中实现连接
【发布时间】:2013-01-08 10:51:09
【问题描述】:

在下图中,“Copy”类和“Book”类显示了一个聚合(Book 有一个 Copy)。所有其他类都是“复制”类的子类。现在,假设有一个Member 类,它必须访问类“Copy”的子类“Lending”和“Borrow”。 'Member' 类唯一应该知道的是“accessionNumber”。

如果我们从代码的角度考虑这一点,我的“Book”类包含一个“Copy”数组。

我如何知道某本书的入藏号?

假设我需要copies 数组中第三本书的“accessionNumber”。但是数组在Book 类中,并且与Book 类没有从Copy 类的连接。

如果我们创建一个返回连接,会不会像“Copy has a Book”,或者更有意义的是,像“Subject has Student”(以著名的聚合示例“Student has a Subject )?

【问题讨论】:

  • @LuchianGrigore:因为这可以在其中任何一个中实现。如果有人能够使用 Java(它是我的母语),那么我可以将它转换回 C++,因为这正是它的处理方式
  • 您可以随时使用 SQL 方式创建一个将 Book 和 Copy 链接在一起的类。然而,这在 C++ 程序中很少有用。
  • @BartekBanachewicz:嗨,你的意思是我需要一个数据库?我不允许
  • 不,我的意思是你可以模仿数据库结构,因为这些类看起来很像数据库对象。另外,请注意 ^up - 这里有 很多 非常有名的人。欢迎来到 SO。
  • @BartekBanachewicz:感谢您的回复。能否请您创建一个图表、代码或类似的东西?将不胜感激:)

标签: uml aggregation class-diagram


【解决方案1】:

如果我们创建一个连接回来,那会不会像“Copy has a Book”一样

不,不会。一个简单的dependency 关系(例如 C++ 中的引用或非拥有指针)不是您从更强的聚合或组合关联中获得的“拥有”或“拥有”关系。这听起来像你想要的。

【讨论】:

  • 您好,感谢您的回复。您的意思是“复制”类中的“Book *bookPtr”(指向书的指针)?
  • @Yohan:是的,给Copy 一个指针或引用它的关联Book
  • 太棒了。谢谢 :) 我真的很感激 :)
猜你喜欢
  • 1970-01-01
  • 2018-08-16
  • 1970-01-01
  • 1970-01-01
  • 2022-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多