2013-06-04 19 views
3

我與MVP設計框架涉足,而且我現在有我的解決方案載列如下:Model-View-Presenter框架:接口在哪個項目中生存?

項目:MODEL 包含:混凝土對象類,DataRetrieval類,IDataRetrieval接口

項目:主講 包含:演示類的iView接口

項目:VIEW 包含:View類,程序類

我一直在重新審視這個解決方案時,我可以,但現在I C不要記得爲什麼我的接口是按照原樣分佈的。這看起來不正確。我嘗試了以下方法:

  1. 將接口移動到 實施它們的相關項目中。
  2. 將這兩個界面都移至演示者類。

使這兩種變化將需要一點點工作,所以我只是想知道如果任答案比另一個更好(或者兩者都非常,非常錯誤的:))

如果它的事項,這是用C#設計的。

我很想聽聽你的意見!

安迪

+1

沒有什麼錯你所描述的電流的方式佈局。將視圖界面與演示者類放在一起可避免演示者和視圖組件之間的循環依賴關係。這是MVP項目結構中非常普遍的一種方法。 –

回答

2

我只是用Winforms上的自定義MVP框架完成的。從我的經驗,我可以清楚地辨認以下子項目任何MVP實現

  1. 示範項目
  2. 視圖界面中項目
  3. 演示接口項目(它可以與視圖界面中一起坐爲好)
  4. 演示者實施項目
  5. 查看實施項目(這是你的Winforms/WPF/ASP.NET的東西去的地方)
  6. 應用程序控制器(這是一個重要且經常被忽略的項目MVP方面。它負責啓動整個框架,包括應用程序本身。它還管理交叉主持人通訊導航)
  7. Application Navigator中(領航員菜了具體的意見和主持人時 應用程序控制器要求)
1

我想建議你添加一個單獨的項目,您的解決方案,並調用它YourSolutionName.Contracts。將所有視圖和模型接口移到那裏,因此Presenter項目不會有這兩個程序集的依賴關係(更多詳細信息請參閱依賴性反轉原理)。