0

许多带有 GUI 的应用程序可以被视为处理对象的集合(可能在几个级别上)。例如,联系人列表或一组文档。此外,应用程序中可能存在“当前对象”(当前联系人、当前文档等)的概念,并且某些 GUI 控件会在该当前对象(而不是集合中的其他对象)上发生操作。显然,GUI 应该提供一种在对其应用新操作之前选择不同对象作为“新当前对象”的方法。我认为这是一种非常普遍的情况,因此对于在 MVC 模式中放置这样一个概念(例如,列表上的整数索引)的位置可能有一个非常普遍的解决方案。

我觉得它应该在模型之外(我可以想到一个应用程序有几个视图/控制器对共享一个模型,并且每个视图对哪个对象是选定的或当前的对象有自己的看法),但我无法通过“谷歌搜索”来确认。

我想知道讨论这个主题的作者的指针。此外,欢迎您提出意见(如果本论坛允许此类讨论)。谢谢。

4

1 回答 1

1

免责声明:我的主要语言是 PHP,并且只对 web 上下文中的 MVC 相关模式有经验(主要是使用它的 Model2 变体,因为 web 本身的明显局限性),这塑造了我对MVC 结构的理解。

我将当前对象的概念视为模型层状态的一个方面。当前对象不应直接暴露给 MVC 三元组的其他部分。控制器和视图都只能通过模型​​层的更高/公共部分(我倾向于将该部分称为“服务”,但这是一个坏名字)访问它。

这使您可以自由更改、操作和交换您已标记为“当前”的对象。同时 MVC 的其他部分不直接受到影响。

至于有关主题的材料,我还没有真正看到任何专门讨论这个主题的文章/书籍。我能建议的最好的方法是再次阅读企业应用程序架构的模式..。

于 2012-06-21T19:12:04.373 回答