Attention à l'usage abusif des DTO quand même !
En effet publier des DTO dans la signature de méthodes Jax-WS ou Jax-RS, ou en communication EJB remote ou RMI, ou en Spring remoting, ou encore pour communiquer avec du Flex, bref en général dans un contexte distribué, est souhaitable voire inévitable.
Par contre utiliser des DTOs pour remonter de la couche DAO vers Service, ou Service vers Présentation dans un même projet/war, pour moi est très abusif.
C'est la lazy solution pour traiter le lazy loading de JPA. ça pour moi c'est un anti-pattern lié à une certaine incompétence architecturale, qui engendre un volume de code important (Créer une classe Dto pour chaque classe Entité), sans parler des problèmes de maintenances et des anomalies en Runtime dûes à des mappings incorrects ou incomplets entre DTO et entité par les frameworks Tels que Dozer, ..
D'où mon idée sur le fait que c'est l'usage qui est anti-pattern, et qui est conséquence d'un backage, des connaissances et des compétences qui sont anti-pattern.
Hibernate pour moi n'a pas à prouver ce qu'il est et ce qu'il fait; il est là depuis plus de 10 ans, il est utilisé dans des centaines de milliers de projets pour entreprise dans tout le monde, il est la source du standard JPA, il est à la base le premier vrai ORM toute technologie confondue. Il y a des projets avant gardiste qui s'y basent (Hibernate Envers, Hibernate Search ..) qui s'y basent. Donc venir en 2014 et dire qu'un ORM est anti-pattern pour moi ne mérite même pas de faire l'objet d'une polémique. Pour moi la personne avançant ce genre de propos est soit un mauvais développeur, ou bien une personne qui fait pas de développement, en tout cas il n'est pas du monde orienté objet.
Partager