Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

ferramentas ORM quebram de certa forma o encapsulamento e a OO?

A meu ver quando estamos utilizando algum ORM como o Hibernate, as vezes somos obrigados a quebrar o encapsulamento, por exemplo o hibernate obriga a ter o construtor padrão mesmo que o mesmo não faça nenhum sentido ao negócio e também quando usamos orms somos quase empurrados para o modelo anêmico, pois até mesmo vários livros e tutoriais até incentivam que as entidades sejam Pojos, e além, na aula 5 falou-se que na classe Conta para executarmos algum método poderíamos até ter uma conexão com o banco de dados , entretanto se a a classe Conta fosse uma entidade, mais uma vez vamos ter que recorrer a artifícios para receber um repositório ou conexão dentro dessa classe de entidade, por isso às vezes para evitar complexidade prefere-se usar uma classe de serviço muitas vezes caindo novamente no problema da classe anêmica. Qual a melhor forma de contornar esses tipos de problemas entre OO e ORMS?

1 resposta
solução!

Fala Ricardo, tudo bem?

Questionamento interessante, já vi algumas discussões de que ORM é um anti pattern de OO. O que precisamos levar em conta é que enquanto estivermos traduzindo entre relacional (banco de dados) para OO, você sempre terá que fazer alguns sacrifícios do lado do OO. Acho que o JPA é um ótimo meio-termo para preencher essa lacuna. Para fazer código puramente OO, precisariamos de um banco de dados OO (ex: ObejctDB). Isso é ótimo se você "só precisa de um banco de dados" e não precisa executar análises em seu banco de dados. No entanto, você perderá suas ferramentas: MySql workbench e qualquer ferramenta de BI: BIRT, Tableau, Jasper, etc. Em resumo, é uma questão de avaliar os trade-offs

Martin Fowler também disse no livro dele: "However much you may hate using an ORM, take my word for it - you're better off." http://martinfowler.com/bliki/OrmHate.html

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software