理解组合和聚合

时间:2013-09-15 10:52:49

标签: visual-studio-2010 oop c++-cli aggregation composition

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

我知道作文是'HAS-A'关系,聚合是'PART OF'关系。我知道在组合子类中,实例将被类破坏,而聚合则不会。

以下是C ++ / CLI代码

Alarm.h

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

Alarm.cpp

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

据我所知,AlarmNotification之间的关系是撰写,因为没有Alarm,就没有Notification。我对么?如果我是正确的,我怎么能让这段代码在两个类之间有聚合关系?有代码示例吗?

请帮忙。

1 个答案:

答案 0 :(得分:2)

我认为聚合是指聚合对象以某种方式直接暴露(并且期望用户访问它),而组合将完全是内部的,并且与用户代码所看到的无关。

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