2011-01-24 24 views
2

我想繪製責任鏈模式的UML圖。 我所指的地點http://www.vincehuston.org/dp/chain.html哪種UML圖對責任鏈模式是正確的?

http://www.dofactory.com/Patterns/PatternChain.aspx

在Vincehuston圖,有在基類的一個自我循環,因爲基類需要有一個指向下一個處理程序對象。

在dofactory圖中,Derived類中有基類的聚合。

你能告訴我哪一個是正確的嗎? DoFactory主要基於C#解釋,它有什麼區別嗎?

回答

0

我在兩種解釋之間唯一的區別是指向下一個處理程序的指針(基本處理程序類或具體實現)應該在基類中表示,因爲它將在每個實例中繼承。

所以從我的角度來看vincehuston的表示更準確。

如果你看看dotfactory中的實際實現,你將會看到,儘管UML表示將繼任者放在基類中。

編輯:執行方式不同,通過提供和實例到後繼或調用後繼的基方法來調用後繼。在這兩種情況下,方法或成員都是從基類繼承的,因此聚合是錯誤的,所以當您使用繼承的成員或方法時,不會定義聚合。