2015-10-27 28 views
3

我不明白鏈接圖片中兩張表之間的關係是什麼意思。我該如何編碼?什麼意思是單向關係箭頭

enter image description here

這是一個與

虛擬公共Propriete Proprietes {獲得;組; }

+4

請看這裏[http://stackoverflow.com/questions/1874049/uml-arrows-pointers-explanation](http://stackoverflow.com/questions/1874049/uml-arrows-pointers-explanation)。 – Franco

+0

@Franco請好好看看。沒有解釋單向箭頭的含義。那裏的問題詢問除了這個之外的所有箭頭! – Gangnus

+0

這很有趣,但在這裏這種微不足道的元素毫無疑問。實際上,根據現代標準,它幾乎沒有使用,但它可以使用,所以應該解釋。 +1。 – Gangnus

回答

2

吉爾特寫了真實的東西,但我認爲,你需要更多的實用建議。

單向箭頭表示Enquette類有一個字段或方法,屬於Propriete類。 99%是這種類型的簡單領域。當代標準提供使用該線的另一側的點。

事實上,箭頭上沒有名字,通常意味着該字段的名稱是專有的,或者是Propriete,根據語言和貴公司所接受的樣式。 (它在UML標準中不是必需的,但它被廣泛使用)。根據問題的最後一段,看來,貴公司也使用這一規則。

事實上,在行的另一端沒有箭頭,並不意味着Propriete類中沒有任何類型爲Enquette的字段或方法。 (儘管這意味着在90領域)。這僅僅意味着我們還沒有決定是否有這樣的領域。或者,也許我們認爲這並不重要。即它是未定義的。已知缺少這種連接必須用十字形而不是箭頭表示。

所以,在某個地方,你Enquette有一行:

Propriete propriete; 

Propriete* Propriete; //if you are in C++ 

甚至可能

Propriete** Propriete; 

或引用您所

virtual public Propriete Proprietes { get; set; } // apparently, C# 

它可以是靜態/類字段或實例字段 - 它未在圖中定義。

而且在類Propriete可以存在行:

Enquete enquete; // or some of the mentioned variants 

而且你離開它的存在對編碼器的決定。

請注意,沒有箭頭的線意味着兩端都有字段(或方法)。如果該行應該顯示其中的兩個,我們根本就不會畫箭頭。

所以,真的,你在這個問題上有錯誤。這不是單向關係。這是一個單向的箭頭,表示一種關係,可能是單向的。

2

類之間的關聯(不是表)的結尾處的箭頭表示此結束是可導航的。

這被定義爲關聯結束時的屬性操作。在UML 2.5規範的定義說:

isNavigable():布爾 查詢isNavigable()表示是否可以跨越財產進行導航。

body: not classifier->isEmpty() or association.navigableOwnedEnd->includes(self) 

此外,它說,關於該協會表示法:

上會結束開放箭頭指示到底是 通航。關聯結尾的小x表示結束爲 不可導航。

約在瀏覽上上的關聯

適航意味着參加鏈接實例在運行時 (一個關聯的實例)可在該協會的另一端部從 實例有效地訪問。實現這種高效訪問的精確機制 是實現特定的。 如果一端不可導航,則從另一端進行訪問可能不會,也可能不會 ,如果是,則可能效率不高。

而且因爲此慣例仍然經常被用來總結的東西要記住:

適航性符號是根據 非正式會議,由此假定非通航孔兩端過去經常使用爲協會擁有的 ,而通航端則假設爲 ,由分類人在另一端擁有。此慣例現在已棄用 。彙總類型,導航性和最終擁有權是獨立的概念,每個概念都有自己的顯式表示法。協會 兩端擁有類總是可瀏覽的,而那些擁有 協會可能導航或不可導航。

所以現在你應該知道它是什麼意思。如何編寫代碼取決於編程語言,公司標準,架構層,創意等。