4
我有一個表示插件的視圖類,以及伴隨演示者類。我還擁有一個擁有該窗口小部件的窗口的視圖類,以及窗口視圖的伴隨主持人。窗口操縱窗口小部件,所以我需要窗口呈現器與窗口小部件主持人進行通信。想象:模型/視圖/主持人:主持人對演示者通信
+-------------+ +------------------+
| widget_view |<------>| widget_presenter |
+-------------+ +------------------+
^ ^
| |
| V
+-------------+ +------------------+
| window_view |<------>| window_presenter |
+-------------+ +------------------+
我不確定的是如何構造對象。我知道MVP架構並沒有處理這個問題,而是「把它作爲讀者的練習」。事情我想:
- 的意見,構建自己的主持人,和
window_view
結構widget_view
。但是,window_view
在其構造函數中需要額外的參數,它不應該關心的參數,僅僅是實例化演示者。我也不確定window_presenter
將如何訪問widget_presenter
。添加一個widget_presenter
setter到window_presenter
爲window_view
填寫不感覺對我來說是正確的。 - 消除兩位演示者之間的通信線路。
window_presenter
與widget_presenter
通過window_view
對話。這對我來說也不太理想,因爲它僅需要將代碼添加到window_view
,僅用於window_presenter
和widget_presenter
之間的通信。它也只允許單向溝通,並且它還增加了胖子widget_view
以允許外人與其演示者進行交流。
我能想象的複雜性成倍增長這裏作爲window_presenter
需要跟其他主持人或其他演示需要另一些其它的主持人交談。
我也想在這裏加入了調解對象吸收所有這些互相通信和相關性,但在這一點從表現分離邏輯的整體思路開始感到非常昂貴的和非常複雜的。當然,我在這裏做錯了事。