2013-09-21 32 views
1

我需要在代碼中實現這個UML。有人能幫我理解關於這個UML表示的兩個問題嗎?這是Java中的編程類。瞭解接口,類和繼承的一個小的UML表示?

enter image description here

的行使狀態:

的StringFilter是,在這裏客戶可以添加一些特定的詞過濾器,通過該接口過濾器所代表的類。

StringFilter不依賴於任何特定的過濾器。例如,ContainsWord過濾器是由庫提供的標準過濾器,而ContainsText和LengthBelow是由客戶端開發的。

我無法理解UML中的關係。

-

1問:

從我的理解,StringFilter是一類。而StringFilter實現了Filter Filter接口。這是真的?如果在代碼中,我要定義StringFilter implements Filter,它會是正確的嗎?

-

第二問題:

ContainsWord是一類,並實現了accept()方法,在過濾器接口定義。這是真的?並且應該包含詞實現過濾器

-

我很難理解什麼實現了什麼。從ContainsWord關係到接口篩選StringFilter到接口過濾,有些迷惑我。

謝謝!

回答

3

1)StringFilter不執行FilterStringFilter使用Filter的實例來完成其工作(例如,addFilter方法)。 「實現」(在UML語音中,我認爲它是「實現」)是虛線。

2)這正是圖所代表的。 ContainsWordFilter的實現(UML->實現),因此必須實現accept

+1

我同意此答案。另外,如果對你有幫助:從StringFilter到Filter的箭頭,在StringFilter結尾處有一個菱形,表示StringFilter'包含'Filter;該行的Filter末尾的星號表示它包含多個。因此,任何具有打開箭頭的虛線的過濾器都可以作爲StringFilter的addFilter()方法的參數。 – arcy

+1

@ SJuan76更精確。圖中有6條虛線,而其中只有3條代表實現關係。關鍵點是線/箭頭的空心三角形末端。 – ASBH

1
  1. 編號StringFilter使用Filter實例完成任務。因此FilterStringFilter之間的關係就是實現。鑽石方面使用箭頭方面的例子。例如,

    Class StringFilter {Filter filter; ...}

2.是。 ContainsWord類將執行Filter接口並提供接受方法的實現。同樣適用於ContainsTextLengthBelow