Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Implementação do SOLID em modelos MVC(Controllers)

Boa tarde,

Quando fazemos sistemas WEB com o padrão MVC, temos camadas bem definidas, mas com o SOLID, pelo que entendi não tem haver com padrão estrutural e sim mas comportamental.

Esse controller pelo que pude observar ele tem um alto acoplamento, depende de outras classes para fazer sua ação, mas teria mais coisas?

contoller:

@Controller
@Transactional
@Scope(value = WebApplicationContext.SCOPE_REQUEST)
public class AddUsuarioController {

    @Autowired
    private EnderecoDao endDao;

    @Autowired
    private UsuarioDao UsuaDao;

    @Autowired
    private Pedido pedido;

    @RequestMapping(value = "/addUsuario", method = RequestMethod.POST)
    public ModelAndView adicionaUsuario(Usuario usuario, Endereco endereco, HttpServletRequest request){

        String senha = usuario.getSenha();

        usuario.setSenha(new BCryptPasswordEncoder().encode(usuario.getSenha()));
        usuario.setRoles("ROLE_USUARIO");

        usuario.setHashRecovere((new BCryptPasswordEncoder().encode(usuario.getNome()+ usuario.getEmail() + usuario.getPassword())));

        Usuario usuarioCadastrado = UsuaDao.addUsuario(usuario);
        endereco.setUsuario(usuarioCadastrado);
        endDao.addEndereco(endereco);


        if(pedido.getItens().size() >=1 ){
            return new ModelAndView("/confirmacao");
        }

        try {
            request.login(usuarioCadastrado.getEmail(), senha);
        } catch (ServletException e) {
            e.printStackTrace();
        }

        return new ModelAndView("redirect:/");

    }

}

Como seria a aplicação do SOLID em uma classe de controller?

obrigado.

2 respostas
solução

Oi amigo,

Dá uma lida nesse artigo, é bem interessante: https://www.codeproject.com/Articles/822791/Developing-MVC-applications-using-SOLID-principles

Obrigado.