2014-11-02 45 views
1

在一本書(UML和模式應用),我正在看,下面有一些事實來決定,如果一個對象是另一個B對象的創建者(GRASP造物主模式):GRASP造物主模式標準

  • 乙聚集對象A
  • B包含對象A的
  • 乙記錄實例對象
  • 乙緊密使用一個對象。

我不清楚「聚合」,「包含」,「記錄」和「密切使用」的區別。

任何人都可以用一些例子解釋上述標準嗎?

回答

2

下面是書中的Larman與自己給出一些例子:

  • 骨料:銷售聚集 SalesLineItems
  • 包含:專賣局包含廣場
  • 記錄:註冊記錄個銷售
  • 密切採用:銷售緊密使用付款

你忽略了一個標準,我給它的一個例子:

  • 先後爲初始化數據:從系統操作調用的用例「處理程序」通常具有初始化對象所需的數據參數。當調用enterItem(itemID : ItemID, quantity : integer)系統操作時,ProcessSaleHandler 對於SalesLineItem具有初始化數據
0

是的,這些術語有些含糊不清。

其中大多數定義了現實世界的關係。例如,當我們與某人談話時,我們沒有任何問題,並說「某些東西含有某些東西」。

但是在這種情況下,最好有一些具有正式定義的類比。

1)「總計」。這很簡單。該術語對應於UML中的「聚集」關係

2)「包含」。根據作者的書,我們有以下例子:「壟斷委員會包含廣場」。事實上,這種關係對應於「構圖」。 因此,我們可以得出結論,這種關係對應於UML中的「構成」關係。

3)「記錄」。這是最「奇怪的」關係。但是,讓我們再看看他的書。我們可以看到,這種關係出現在「註冊」類的上下文中。這對於他的註冊來說是一項特殊的工作,並且對一些常見的事情沒有任何幫助但我們可以概括這一點,並得出結論,註冊類使用「支付」和「銷售」之間的「關聯」。 因此,我們可以得出結論:「記錄」對應於「UML」中的「關聯」。

4)「密切使用」。這也很簡單。該術語對應於UML中的「依賴關係」,其標記爲< <用途>>