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.