1

如何识别代码中的组合和聚合?特别是在为现有代码绘制类图时?

我知道组合是一种“HAS-A”关系,而聚合是一种“一部分”关系。而且我知道在组合子类实例中会被类破坏,而在聚合中则不会。

以下是 C++/CLI 代码

警报.h

ref class Alarm
{
   public:
       Notification ^n;
       Alarm();
};

报警器.cpp

Alarm::Alarm()
{
     n = gcnew Notification ();
}

据我所知, and 之间的联系AlarmNotificationComposition,因为没有Alarm,就没有Notification。我对么?如果我是正确的,我怎样才能使这段代码在两个类之间具有聚合关系?请问那里有代码示例吗?

请帮忙。

4

1 回答 1

2

我认为聚合是聚合对象以某种方式直接暴露(并且用户应该访问它),而组合将完全是内部的并且独立于用户代码看到的内容。

这将使您的示例成为聚合。

于 2013-09-15T19:08:24.913 回答