在围绕MVC设计项目的体系结构时遇到一些问题。(这是一个C ++ / Marmalade SDK项目,我没有使用任何特定的MVC框架,而是创建了一个。)
在几篇文章中(例如在史蒂夫·伯贝克(Steve Burbek)的原始文章中),我一直在阅读“ MVC triad”的概念,这使我感到困惑,因为我从字面上理解了这个概念。当我第一次阅读它时,看起来应用程序是围绕“ MVC triad”单元构建的(我应该为每个UI单元构建一个单元),但是我发现这相当不灵活,我认为这并不是打算使用MVC的方式。然后,进一步研究该问题,我发现了控制器和视图紧密耦合的几个示例,即一对一关系-TextEditView具有TextEditController。
但是,当我回到项目时,发现使用一个控制器(按“逻辑单元”,如AddElementController)和该特定控制器的多个视图可能会很有用。
我显然在考虑类似AddElementController之类的东西,它应该具有某种选项卡式UI。我是否应该具有一个具有AddElementTabView的AddElementController以及用于选项卡的几个AddImageView,AddSoundView等?还是每个选项卡视图都应该有一个不同的“子控制器”?
总而言之,关于MVC模式(不是X框架对此模式的特殊理解/实现),为一个控制器拥有多个视图是否正确,还是每个视图都应具有其特定的控制器?
另外,在控制器上保留一些状态信息是否正确还是应该是无状态的(意味着状态应该放在某些非域状态模型上)?
在此先感谢所有。