2012-12-03 47 views
0

目前,我們有像在我們的UML類圖以下的結構:UML泛化和關係

Node --1------------*-- Data 
^      ^
|      | 
SpecialNode--1----*--SpecialData 

例如SpecialNode是類的專業化Node和SpecialData是類Data的專業化。

這個想法是,每個SpecialNode只有SpecialData,沒有'正常'的數據。然而,有人會認爲,由於SpecialNode是一個Node,它可以與Data和SpecialData都有關係。

是否有任何可用的參考資料可以說明SpecialNode是否只能使用SpecialData?如果不是的話,我們如何能夠實施這個(以乾淨的方式)。

親切的問候,喬斯

回答

0

事實上,這種建模意味着SpecialNode繼承了Node所有屬性,包括Data。否則,它將與Liskov Substitution Principle相矛盾,這是設計良好的重要原則。我建議您不要將您的NodeSpecialNode定義爲「具有」DataSpecialData,而是具有到Data的接口。對於Node它將與Data對象關聯,對於SpecialNode它將與SpecialData對象關聯。