我有一個視圖,控制器和模型。這是一個桌面應用程序,讓它說是一個瀏覽器。所以,有一個名爲AppCurrentStatus的對象。其中包含窗口位置,打開多少個窗口以及窗口內容。哪種設計更好?單個對象或每次傳遞一個對象?
所以,我們說,用戶想打開一個新標籤,然後流程是這樣工作的:
1. View (user interface) press new a tab.
2. Fire event to controller.
3. Controller update the AppCurrentStatus, add one new tab.
4. Controller notify the model, the model store the data, just in case the user close the browser incidentally
問題是,視圖,控制器和模型是如何得到這些信息,他們從AppCurrentStatus需要?我應該讓AppCurrentStatus成爲一個單身人士,讓每個人都可以稱之爲單身人士。例如,用戶可以有3個以上的選項卡,控制器可以通過單例直接調用它,以檢查它是否有3個選項卡。如果成功添加新選項卡,模型是否可以保存AppCurrentStatus並詢問控制器,只需從單例中調用它即可。
另一種方法是將AppCurrentStatus作爲變量保存在控制器中,當用戶添加一個新選項卡時,事件將觸發並告訴控制器檢查自己的AppCurrentStatus,如果修改,只需將此對象傳遞給模型,保存。
更多指定告訴不同,該模型會喜歡這個,辦法之一:
-(void)save(); //calling singleton
如果方法有兩個是這樣
-(void)save(AppCurrentStatus aAppCurrentStatus); //save from a object
或其他更好的解決方案可以建議?