Onde o parser e os objetos de serviço se encaixam no MVC?

5

Os objetos de serviço NSURLConnection e os objetos analisadores XML / JSON estão na camada do controlador ou na camada do modelo? Por quê?

Há algum problema em ter lógica de negócios no controlador? Ou deveria estar apenas na camada do modelo?

A camada de modelo pode ser representada por objetos NSArray / NSDictionary ou deve ser estritamente estruturada com objetos personalizados para estar de acordo com o padrão MVC, já que meu aplicativo não exige armazenamento persistente.

    
por SuperGodSachin 27.12.2012 / 11:09
fonte

3 respostas

4

Todas as regras de negócios (e aplicativos) devem estar na camada de modelo do seu aplicativo. O controlador deve apenas coletar (de modelos para visualizações) e enviar (de solicitações de URL para modelos) os dados.

Seus modelos podem ser compostos em duas camadas , o negócio lógica (e aplicação) e sua camada de acesso a dados. Sua camada de acesso a dados executa consultas (SQL, NoSQL, Web Service ou até arquivos de texto).

Seus modelos não devem estar "cientes" do tipo de armazenamento que você está usando. Dessa forma, você pode alterar e combinar mecanismos de acesso a dados diferentes (seus usuários estão em um banco de dados e o restante dos dados vem de um serviço da Web, por exemplo).

Para integrar sua camada de acesso a dados em seus modelos, você deve confiar na injeção de dependência

    
por 27.12.2012 / 13:08
fonte
0

Eu não acho que você deva aplicar uma regra rígida como onde os módulos de serviço devem ser aplicados. Na maioria das vezes, os serviços são usados pelo modelo, mas há bastante variabilidade.

Por exemplo, uma exibição que carrega um recurso de um URL interage com um serviço de rede ou um controlador pode usar um serviço de analisador depois de extrair dados de um modelo e adaptar esses dados a um modo de exibição.

    
por 27.12.2012 / 21:12
fonte
-1

O trabalho do controlador deve ser apenas manipular a solicitação, validá-la e chamar o componente de modelo apropriado para fazer o trabalho real e, assim que o controle voltar, enviar a resposta de volta ao cliente / visualização.

Assim, coisas como análise ou qualquer atividade / processamento específico do serviço devem ser feitas na camada Modelo.

    
por 27.12.2012 / 16:25
fonte

Tags