如果我使用UML图表来描绘C程序,我可以使用组合和聚合,还是仅为面向对象语言保留?
例如,如果我的源代码中有一个结构或缓冲区仅用于代码的特定段,我认为是聚合,因为该特定代码段的生命周期取决于使用该文件的用户权限?
我应该使用协会和直接协会吗?
答案 0 :(得分:4)
是的,您可以使用UML来描述任何语言的程序。
当一个对象(结构,w / e)的生命周期与另一个对象紧密结合时,是Composition,而不是Aggregation
您所描述的既不是构成也不是聚合。只能通过某个代码段有效的特定结构/缓冲区的生命周期可以通过序列图更好地表示(获取缓冲区,释放缓冲区调用应该在图中显示)
您将在C中分配成分和聚合。想想POD结构。其中一些引用了其中的其他POD结构。如果引用带有内存所有权,则它是Composition(例如:需要释放的指针)。如果引用没有内存所有权,则它是聚合(例如:释放结构时不必释放的指针)。