2012-06-20 54 views

回答

7

理論上,演示者應該有權訪問視圖,在這種情況下,應該從左側面板的視圖中通知演示者任何按鈕點擊,然後更新表格以在右側面板中顯示視圖。

這是如何完成取決於你的具體實現。體系結構模式是指導原則......沒有必須遵循的硬性和快速規則(除非您使用某種MVP庫,在這種情況下,您將受到該庫實現的限制)。

編輯:要回答以下你的問題,芯片...

同樣,這完全取決於您的實現。在某些情況下,擁有一個龐大的Presenter和數十個視圖可能是有意義的。在其他情況下,每個視圖都有一位演示者可能是有意義的。不過,即使您有多個演示者,您仍需要維護一個層次結構,以便演示者可以相互交談。因此,在某種程度上,主持人將瞭解按鈕點擊和空容器等待填充的知識,即使知識是通過另一位演示者間接獲得的。

編輯2 :(爲了迴應您的更新評論)沒有硬性規定,但MVP實施中的一個共同特徵是Presenter至少保留了部分控制權。這意味着演示者必須對某些相關UI元素具有某種級別的訪問權限。如果您在視圖中嵌套視圖,那麼您仍然需要爲演示者設計一種與它們交互的方式。

+0

所以你在說的是演示者與視圖和界面有一對多的關係?這是否意味着如果我有一個嵌套視圖,可以有第三個嵌套視圖的視圖,我必須通過構造函數 –

+0

傳遞引用我猜你正在使用winforms。 WinForms將與您嘗試利用它的動作進行鬥爭。我之前做過,但很少會自然而然的,你必須做出一些妥協。如果可以的話,我推薦使用MVVM,其中MVVM很自然並且很容易支持。 – JDB

+0

感謝您的所有輸入。我想我可能會嘗試製作和處理主持人之間交流的「觀察員」或「主持人」。這整個模式對我來說很時髦,但我決心實施它 –