2010-09-28 57 views
5

我有一個MVP(被動視圖)設置,並且它進行得很好。 我最近閱讀Martin Fowlers對此的描述(http://martinfowler.com/eaaDev/PassiveScreen.html),他寫道:「Passive View是另一個優勢,它是一個非常明確的機制。對Observer機制或聲明性映射的依賴性很小。 「關於模型 - 視圖 - 演示者(C#)的一般問題,模型是否應該知道演示者?

在我的MVP中,我的模型完全忽略了演示者,從模型到演示者的溝通由事件處理。 我通過調用演示者ctor來初始化視圖中的MVP,新的Presenter(這個,新的Model())(這裏指的是視圖)。

我的問題是,我應該讓模型意識到演示者可以直接調用演示者邏輯,而不是使用事件嗎?

回答

6

不,你不應該。如果你這樣做了,你的模型將與你的表示層緊密結合,使之在這種情況之外無用。而且,測試,調試和維護模型層將變得更加成問題。

+0

那麼馬丁福勒甚至會想到,被動觀點對觀察機制的依賴性很小?也許他的意思是直接將觀點與模型聯繫起來的機制(通過事件等)? – lejon 2010-09-28 12:22:02

+0

因爲主持人指定被動視圖(而主動視圖需要較少的手持,如果你喜歡)。換句話說,被動觀點並不是觀察主持人,但主持人正在觀察模型(並相應地對觀點進行口授)。 – 2010-09-28 12:44:26

相關問題