Com MVC, fazer interações com periféricos autônomos pertencem ao modelo ou o controlador?
-
03-07-2019 - |
Pergunta
Usando MVC com um padrão de observador, se uma ação do usuário requer polling um dispositivo (como uma câmera) para dados, caso a votação ser feita no controlador e o resultado passou fora do modelo ou deve um pedido ser enviado para o modelo eo próprio modelo realiza a votação.
Esta questão é a minha tentativa de conciliar tudo o que eu estou lendo que agencia a "Controladores magras" Maxim com a minha intuição do intestino que o modelo só deve estar agindo em dados não adquiri-lo.
(Nota: Esta questão pode ser subjetivo eu não estou totalmente certo de que há um one-true-resposta a esta pergunta Se não, fique à vontade para retag como eu vai ser muito.. interessado em ouvir opiniões sobre o assunto.)
Solução
Pertence no controlador. O modelo contém as regras e informação, o controlador é essencialmente a interface para tudo o que não é o usuário, informações ou uma regra de negócio, ea vista lida com interação do usuário.
Pode-se argumentar o ponto de vista poderia controlar isso também -. O modelo e os drivers da câmera pode ser determinado pelo usuário, e, portanto, se enquadram nessa área
Mas eu não esperaria o modelo para ter as interfaces periféricas.
-Adam
Outras dicas
O controlador deve realizar a votação. O modelo é um instantâneo do estado em minha mente, de modo que os estados da câmera deve ser passado a partir do controlador para o modelo.
você pode adicionar uma camada de serviço fina abaixo do controlador e, acima de modelo, isso permite que você colocar todo o seu acesso ao código-periferia em um lugar