【发布时间】:2011-12-31 01:25:18
【问题描述】:
我有一个视图、控制器和模型。这是一个桌面应用程序,假设它是一个浏览器。因此,有一个名为 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个以上的tab,controller可以直接通过单例调用,检查是否有3个tab。如果新选项卡添加成功,模型会在请求控制器时保存 AppCurrentStatus,只需从单例调用它。
另一种方法是将 AppCurrentStatus 作为变量保留在控制器中,当用户添加新选项卡时,该事件将触发并告诉控制器检查它自己的 AppCurrentStatus,如果是修改,只需将此对象传递给模型,以保存它。
更多的指定告诉不同,模型会这样,方法一:
-(void)save(); //calling singleton
如果方法二是这样的
-(void)save(AppCurrentStatus aAppCurrentStatus); //save from a object
或者可以提出其他更好的解决方案?
【问题讨论】:
标签: oop object architecture