2012-02-09 42 views
2

在UML類圖中是否有一種公認的描述由boost共享指針保存的對象的方法(即應該使用哪一個,並使用空的或完整的菱形,如聚合或合成)?在UML中繪製智能指針

+1

如果你可以繪製UML圖,你也知道對象所有權關係,那麼爲什麼你首先需要一個智能指針呢? – zvrba 2012-02-09 09:54:07

回答

2

我不知道如何將智能指針建模爲關係的整體共識。

黑色的鑽石意味着控制生命時間,白色的鑽石意味着不控制生命時間,所以你可以同意在本地使用黑色鑽石for unique_ptr,所有黑色鑽石用於shared_ptr,白色鑽石用於weak_ptr。

如果你真的要建模smart_ptr,我建議增加一個屬性類的關係:

0 
| /----------------\ 
+--+ shared pointer | 
| \----------------/ 
V 
2

你的UML類模型應該是抽象的,沒有語言的成語。

實際上,您可以爲每種類型的智能點創建關係的刻板印象,其中包括OCL約束。我對每種子類型的智能指針的具體語義都不太熟悉,以提供您的詳細信息,但OCL Specification應該有所幫助。