我正在Windows 7上構建一個WPF圖編輯器。 儘管我正在學習重要的設計技術(TDD,Prism,MVVM,依賴注入),但我理解了一些已建立的設計模式,這裏是我的問題:如何設計/執行命令模式時,命令可變數量的參數?
總的來說,這些命令會有不同數量和類型的參數組合。 (爲了清楚起見,每個命令具有固定的參數集) 例如,下文中,所有這些都可以用鼠標來執行:對新的節點參數=位置(:
命令創建新的節點點)
命令移動節點到新位置:參數=節點(graphNode),新位置(點)
命令使連接兩個節點的邊緣:參數=從節點(graphNode),到節點(graphNode) ,邊緣類型(GraphEdgeType)
如何應用工廠或抽象工廠模式來最好地封裝這些命令?
客戶端將這些參數傳遞給Command主管的首選方式是什麼?
(我在這裏打獵和其他地方,但沒有發現問題或答案,所以明確框架,並準備被重定向到的東西我找不到:-)
[編輯]我沒有足夠明確的:
,如果我做一個的CommandFactory返回命令,如果它被傳遞命令類型(枚舉,說)和參數集對象......還是應該只通過命令類型,從而使客戶端隨後使用參數填充命令?
我看不出如何做到這一點,接收方可以高效地驗證給定命令類型的參數集 - 即不顯式檢查傳遞的每個值的類型。 或者[剛纔發生在我身上]我是否定義了一個特定於每個命令的參數類,但綁定了一個用於檢索單個值的接口? – user167471
我將不得不刷新狀態機:-) – user167471