A resposta de ElYusubov geralmente o une, a lógica do domínio deve entrar no modelo e na lógica da aplicação no controlador.
Dois esclarecimentos:
- O termo lógica comercial é bastante inútil aqui, porque é ambíguo. A lógica de negócios é um termo genérico para toda a lógica com a qual os empresários se preocupam, separando-a de meras tecnicalidades, como armazenar coisas em um banco de dados ou como renderizá-las em uma tela. Tanto a lógica de domínio ("um endereço de e-mail válido parece ...") e fluxos de trabalho / processos de negócios ("quando um usuário se inscreve, peça seu endereço de e-mail") são considerados lógica de negócios, sendo que o primeiro pertence claramente ao endereço de e-mail. modelo e o último sendo lógica de aplicação que vai no controlador.
- O MVC é um padrão para colocar coisas em uma tela e permitir que o usuário interaja com ele, não especifica o armazenamento de todo . A maioria dos frameworks MVC são estruturas completas de pilha que vão além do mero MVC e o ajudam a armazenar seus dados, e como os dados que devem ser armazenados geralmente são encontrados no modelo, esses frameworks oferecem maneiras convenientes de armazenar seus modelos. dados em um banco de dados, mas isso não tem nada a ver com o MVC. Idealmente, os modelos devem ser agnósticos quanto à persistência e a mudança para um tipo diferente de armazenamento não deve afetar o código do modelo. Arquiteturas completas têm uma camada de persistência para lidar com isso.