Estou tendo algumas dúvidas ao projetar uma arquitetura para um projeto em torno do MVC. (É um projeto SDK em C ++ / Marmalade, não estou usando nenhuma estrutura MVC específica, estou criando uma.)
Em vários artigos (como no artigo original de Steve Burbek ), continuo lendo o conceito "tríade MVC", que me incomoda desde que tomei esse conceito literalmente. Quando o li pela primeira vez, parecia que um aplicativo é construído em torno de unidades "tríade MVC" - uma para cada peça de interface do usuário que eu supunha -, mas acho isso pouco flexível e acho que não é assim que o MVC se destina a ser usado. Depois, pesquisando mais sobre o assunto, encontrei vários exemplos de acoplamento rígido do controlador e da visualização, a saber, relacionamento 1 para 1 - o TextEditView possui o TextEditController.
Mas, quando volto ao meu projeto, acho que pode ser útil ter um controlador (por 'unidade lógica', como AddElementController) e várias visualizações para esse controlador em particular.
Estou claramente pensando em algo como um AddElementController que deve ter algum tipo de interface do usuário da guia. Devo ter um AddElementController que tenha um AddElementTabView e vários AddImageView, AddSoundView, etc. para as guias? Ou devo ter um 'sub-controlador' diferente para cada visualização de guia?
Em suma, e com relação ao padrão MVC (não a compreensão / implementação específica desse framework X), é correto ter várias visualizações para um controlador ou cada visualização deve ter seu controlador específico?
Além disso, é correto manter algumas informações de estado no controlador ou deve ser sem estado (o que significa que o estado deve ser colocado em algum modelo de estado que não seja de domínio)?
Obrigado a todos antecipadamente.