Galera, estou com um problema de definição aqui no meu projeto.
Nosso projeto cuida apenas do repositório de dados numa base(não é um BD), no caso expomos serviços(WS) basicamente de um CRUD de objetos:
Adicionar Usuario
Alterar Usuario
Remover Usuario
Consultar Usuario
Bloquear Usuario
Desbloquear Usuario
Temos Web Service REST que é responsável apenas pelo repositório da solução. Outras equipes(outras empresas) são responsáveis
pelas regras de negócios das aplicações e apenas chamam nosso serviço que cuida da inserção dos dados.
Nosso caso é peculiar, estou com dúvidas em como dividir minha classe de “negócio”.
Independente do pattern usado, tipo um “UsuarioService”, qual seria melhor opção:
1- UsuarioService(UsuarioBO, ou seja lá o nome que queiram) ficaria com todas as funcionalidades CRUD e bloqueio/desbloqueio…
ServerWS > UsuarioService > UsuarioDAO
2- UsuarioService ficaria com o CRUD, e BloqueioService ficaria com bloqueio e desbloqueio.
ServerWS > UsuarioService > UsuarioDAO
ServerWS > BloqueioService > UsuarioDAO
Ou alguma outra sugestão que tiverem…
O lance que só tenho uma entidade no serviço, que é “Usuario”, eu poderia jogar tudo dentro de um único “UsuarioService” como na
opção 1, mas a classe vai ficar meio carregada, pois apesar de não ter regras de negócios(somos apenas repositório),
tem diversas validações a serem feitas e novas funcionalidades futuras.
O sistema vai evoluir provavelmente apenas com operações diferentes, mas no fundo vai manter o CRUD. Funcionalidades futuras:
Adicionar Usuario Quarentena, Remover Usuario Quarentena. Para as aplicações “clientes” isso são outros serviços, mas no
pra nós são apenas updates.
Queria dividir da melhor maneira esse núcleo, mesmo que gire em torno de apenas uma entidade.
Agradeço opiniões.