我有一些樂趣,試圖讓我的頭在一些MVP stuf,因爲它涉及到用戶控件。我正在使用.NET WinForms(或與之相近的東西)和Supervising Controller模式(嗯,我想我是:)。MVP和UserControls和調用
用戶控件本身是MVP應用程序的一部分(其視圖和關聯的Presenter等)。演示者始終首先啓動,然後啓動模型然後查看視圖。該視圖建立其用戶界面,其中的一部分將是新的UC,這是視圖。
現在,(表單)演示者需要了解UC Presenter,但我認爲它不知道視圖是如何組成的。舉例來說,Presenter並不知道UC是表單控件集合的一部分,也不應該。
此外,設計經驗不應改變; IOW View(窗體)的開發者應該能夠從工具箱中選擇一個用戶控件並將其放在窗體上。
所以,在我的問題。首先,我的假設是否正確?有點誤導?弄亂? WTF你在想什麼?
其次,是否有正確的(足夠?)使窗體視圖調用UC視圖,並且窗體Presenter調用UC Presenter並且有一些機制來告訴UC View它的Presenter是什麼?這打破了我的「演示者第一」規則,但我不知道該怎麼做。
任何其他的想法,建議,評論欣然接受。
- nwahmaet
我同意所有的UC都是特定於實現的視圖,但是也認爲他們需要他們自己的演示者或模型,具體取決於UC的意圖。導航面板可能具有Presenter邏輯而不是模型;一個郵政編碼肯定查找需要一個模型。 – nwahmaet 2009-01-20 16:36:35
我明白你的觀點。我的感覺是,儘可能避免將自定義控件綁定到模型上。像這樣綁定到您的應用程序體系結構中的控件我稱之爲「胖」控件。它們就像迷你的子窗戶一樣,在保持設計清潔/簡單的同時很難處理。 – 2009-01-22 15:29:58