對我來說,或多或少地清楚GOF模式是什麼以及它們如何表現。
但是,我覺得我錯過了全局的東西(使用UML或模式),因爲如果我試圖在腦海中重複它們,我會在許多GOF類圖中繪製額外的箭頭或兩個箭頭。我明白,UML圖不必顯示所有連接,但爲什麼不是所有連接都是簡潔的模式圖。GOF模式UML圖中的依賴性箭頭
幾個例子:
工廠方法UML圖:
http://en.wikipedia.org/wiki/Factory_method_pattern
爲什麼沒有關聯線(直的實線箭頭)從創建者到產品? FactoryMethod有一個註釋:「product = FactoryMethod()」。這意味着創作者跟蹤產品。爲什麼UML中沒有連接?
Command模式UML圖:
http://en.wikipedia.org/wiki/Command_pattern
爲什麼祈求孤立?客戶端與Receiver相關聯,取決於具體命令,但它需要將該命令傳遞給Invoker。爲什麼Client和Invoker之間沒有連接?
感謝您的回答。
感謝您的時間,Mystere人。沒有產品結構的創作者是一個好點。 但是,在Command模式中,我想知道Client-Invoker連接。調用者 - 命令連接似乎對我很清楚。對我來說,Client和Invoker之間的依賴關係是相當結構的。客戶端創建Invoker或接收創建的並向其發送命令。這裏的邏輯是什麼? – Alex
@Alex - 有*可能*是客戶端和調用者之間的關聯,但其中一個對於該模式不是必需的。例如,當使用依賴注入系統時,調用者不會調用創建者來創建對象。他僅僅依賴於傳遞給它的接口。您的實現可能會創建一個依賴項,但該模式本身並不需要它。 –