如何识别代码中的合成和聚合?特别是在为现有代码绘制类图时?
我知道作文是'HAS-A'关系,聚合是'PART OF'关系。我知道在组合子类中,实例将被类破坏,而聚合则不会。
以下是C ++ / CLI代码
Alarm.h
ref class Alarm
{
public:
Notification ^n;
Alarm();
};
Alarm.cpp
Alarm::Alarm()
{
n = gcnew Notification ();
}
据我所知,Alarm
和Notification
之间的关系是撰写,因为没有Alarm
,就没有Notification
。我对么?如果我是正确的,我怎么能让这段代码在两个类之间有聚合关系?有代码示例吗?
请帮忙。
答案 0 :(得分:2)
我认为聚合是指聚合对象以某种方式直接暴露(并且期望用户访问它),而组合将完全是内部的,并且与用户代码所看到的无关。
这将使您的示例成为聚合。