我試圖首次實現被動視圖的MVP,但我有點困惑誰知道誰在這種模式。我瞭解,如果視圖發生變化,視圖會通知主持人,而主持人會反過來通知其他人(其他視圖和模型)。多視圖MVP:發送正確的事件
現在,在我的情況下,我有多個視圖,並且我也有一個可以在UI之外更改的模型。以下兩種情況可能發生:
視圖[i]被更改並通知Presenter。演示者需要通知所有其他視圖和模型,但不能查看[i]。此外,無論Views還是Model都不會向Presenter發送更改通知,即使它們只是被修改了(否則將會有無限循環的事件)。
模型被更改並通知Presenter。演示者需要通知所有視圖,但不是模型。但是,即使視圖剛剛被修改,視圖也不會向Presenter發送更改通知。
主講人如何通知和誰不是?該模型如何知道是否需要發出變更通知?畢竟,它只是被修改了,但它不一定知道誰。
一種可能性是讓每個人(模型,視圖和演示者)自由發送更改通知,而是存儲對最初觸發通知內部更改的對象的引用(從而將通知封裝在事件對象中)。如果他不是變化的原始觸發器,則每個對象僅發送通知。但是有沒有更簡單,更乾淨的方法呢?