1 controller ou vários controllers?

Olá pessoal,
Tenho pouca experiencia profissional em desenvolvimento, porém sou graduado em análise e desenvolvimento. Minha dúvida:
Oque seria mais indicado utilizar 1 Controller ou N Controllers?

Academicamente desenvolvi uma aplicação web(sistema de gerenciamento de vagas e curriculos) e o mesmo foi desenvolvido somente com 1 Controller, todas requisições eram controladas por esse único.

Agora lendo alguns livros sobre JSF, várias exemplos criam vários Controllers

Ex: UsuarioController, CurriculoController, VagaController …

Vantagens, desvantagens, qual a melhor prática?

Abraço

Na minha opnião, das possiveis abordagens, existem duas mais interessantes:

1.Criar uma controller por serviço, seguindo a mesma lógica do exemplo enviado por você:
UsuarioController, CurriculoController, VagaController

2. Utilizar o command patern, onde você tem um controller por ação:
InserirUsuarioCommand, RemoverUsuarioCommand, DeletarUsuarioCommand, etc…
(o command corresponde ao controller nessa abordagem)

Ambas as abordagens são faceis de entender e de manter.
A primeira é mais simples, pois exige a criação de menos classes e permite reaproveitar os métodos de validação dentro de um mesmo controller.

Criar um controller para toda a aplicação só viavel para aplicações muito simples (academicas, talvez…).
Imagine o numero de linhas e a complexidade dessa classe de controle para uma aplicação de grande porte.
Seria inviável.

[quote=marcianorott]Olá pessoal,
Tenho pouca experiencia profissional em desenvolvimento, porém sou graduado em análise e desenvolvimento. Minha dúvida:
Oque seria mais indicado utilizar 1 Controller ou N Controllers?

Academicamente desenvolvi uma aplicação web(sistema de gerenciamento de vagas e curriculos) e o mesmo foi desenvolvido somente com 1 Controller, todas requisições eram controladas por esse único.

Agora lendo alguns livros sobre JSF, várias exemplos criam vários Controllers

Ex: UsuarioController, CurriculoController, VagaController …

Vantagens, desvantagens, qual a melhor prática?

Abraço[/quote]

Márcio,opte por uma abordagem com vários Controllers,como o colega falou abaixo,imagine o tamanho dessa classe e a complexidade de se manter isso.

já deu uma lida sobre Regras Padrão(algo do tipo)

ex:

br.com.empresa.projeto.view.controler // classes que gerencia uma tela ex: backbean do jsf, action..  

Compreendi plenamente galera…

1 único controller gerará muitas linhas de código e para manutenção realmente fica bastante complicado.

Grato a todos que responderam, as respostas foram muito esclarecedoras…

Abraço.

Cara eu faria o seguinte

Varios controllers

porque?

porque para cada serviço um controller

e observação
Coloque os pacotes extremamentes separados
exemplo:

br.com.nomeprojeto.controller
br.com.nomeprojeto.view
br.com.nomeprojeto.model
br.com.nomeprojeto.dao
br.com.nomeprojeto.util
etc