Galera li este post clássico http://www.guj.com.br/posts/list/45/60916.java que inclui DDD… outros pra evitar VO, BO etc…
Estou tentando assimilar tudo, e estou lendo o DDD do Eric…
Hoje vocês mais experientes, como implementam e NOMEIAM(visto que o Shoes disse que é fundamental um nome bem dado) as camadas da sua aplicação com DDD?
Estou com algumas dificuldades pra entender como ficaria… usando o JSF que eu conheço, como ficaria essa disposição?
view > UsuarioBean > ??? O que vem daqui pra frente, seria assim?
UsuarioService (Qual nome vocês colocam na camada responsável pelas regras de negócio onde ficaram as particularidades? UsuarioService? UsuarioBO ( :roll: ), ou invés de agrupar por um Usuario, agrupa por serviço que o usuário pertence? )
UserRepository > Impl > UserDAO > Impl ?
Não? Como seria?
[quote=JavaTux]
view > UsuarioBean > ??? O que vem daqui pra frente, seria assim?
UserRepository > Impl > UserDAO > Impl ?
Não? Como seria?[/quote]
view -> LoginMBean (ou LoginController) > AutenticationService > UserRepository > EntityManager (sem DAO)
Com certeza há colegas com mais autoridade pra falar sobre DDD aqui, mas vou falar o que eu costumo fazer.
O código que expressa seu modelo de domínio é composto por classes que implementam os padrões descritos no livro do Eric Evans, como você deve saber. Alguns desses padrões, como repositórios e fábricas, definem pontos de acesso às entidades do domínio. Quem quer que seja que acesse a camada de negócios deve acessar as entidades através das classes que implementam esses dois padrões.
Dito isso, uma decisão que deve ser tomada é se você terá disponível uma camada de aplicação ou não. Caso positivo, o managed bean não acessa repositórios ou fábricas diretamente: ele o faz através da camada de aplicação. Caso negativo, o managed bean pode acessá-los diretamente para obter e persistir as entidades.
Então, se você tiver uma camada de aplicação, o fluxo pode ficar assim:
managed bean --acessa–>
camada de aplicação --acessa–>
repositórios ou fábricas --obtém/persiste–>
entidades, aggregates, VOs
Se não tiver, o fluxo pode ficar assim:
managed bean --acessa–>
repositórios ou fábricas --obtém/persiste–>
entidades, aggregates, VOs
Abraços
Entendi agora o que você disse, li outro post e ficou claro seu post.