Olá !
Bom, comecei a ler um livro sobre engenharia de software, e um dos princípios que me chamaram atenção foi o acoplamento ou ortogonalidade entre componentes. Pois bem, recentemente no estágio eu me deparei com a seguinte situação: Suponha que eu tenho um sistema, com os modelos Vendedor e Produto.
Caso exista algum vendedor no banco de dados, o cadastro de um novo produto é aceito, e ao clicar em no link Cadastrar Novo Produto, o usuário é redirecionado para a tela /cadastrar_produto.
Caso não exista nenhum vendedor no banco de dados, o cadastro do produto não é aceito, e ao clicar no link Cadastrar Novo Produto, o usuário não é redirecionado para a tela /cadastrar_produto, e sim para a tela /cadastrar_vendedor com uma mensagem do tipo “Cadastre primeiro um vendedor, para depois cadastrar um produto”.
Considerando-se o uso do padrão MVC, eu penso que nessa situação a camada View sabe mais do que deveria sobre a camada Model, já que o fluxo de telas e consequentemente o comportamento do sistema vai variar em função da existência ou não de algum registro especifico em uma tabela do banco de dados.
Então, nesse caso, eu realmente tenho uma camada sabendo mais do que deveria sobre a outra ? E se tenho, isso pode ser caracterizado como acoplamento ?
Obrigado !