Selon Martin Fowler
Le terme a été inventé alors que Rebecca Parsons, Josh MacKenzie et moi nous préparions pour une présentation lors d'une conférence en septembre 2000. Dans la présentation, nous soulignions les nombreux avantages d'encoder la logique métier dans des objets Java réguliers plutôt que d'utiliser des Entity Beans. Nous nous demandions pourquoi les gens étaient si opposés à utiliser des objets réguliers dans leurs systèmes et avons conclu que c'était parce que les objets simples manquaient d'un nom sophistiqué. Alors nous leur en avons donné un, et ça a bien pris.
En général, un POJO n'est pas lié à des restrictions et n'importe quel objet Java peut être appelé un POJO mais il y a quelques directives. Un POJO bien défini devrait suivre les directives suivantes.
- Chaque variable dans un POJO devrait être déclarée comme privée.
- Le constructeur par défaut devrait être remplacé par une accessibilité publique.
- Chaque variable devrait avoir sa méthode Setter-Getter avec une accessibilité publique.
- En général, un POJO devrait remplacer les méthodes equals(), hashCode() et toString() de l'objet (mais ce n'est pas obligatoire).
- Le remplacement de la méthode compare() de l'interface Comparable utilisée pour le tri (préférable mais pas obligatoire).
Et selon la spécification du langage Java, un POJO ne devrait pas avoir à
- Étendre des classes pré-spécifiées
- Implémenter des interfaces pré-spécifiées
- Contenir des annotations pré-spécifiées
Cependant, les développeurs et les frameworks décrivent toujours un POJO comme nécessitant l'utilisation d'annotations prédéfinies pour implémenter des fonctionnalités telles que la persistance, la gestion des transactions déclaratives, etc. L'idée est donc que si l'objet était un POJO avant que des annotations ne soient ajoutées, il redeviendrait un POJO si les annotations sont supprimées et peut toujours être considéré comme un POJO.
Un JavaBean est un type spécial de POJO qui est Serializable, a un constructeur sans argument, et permet l'accès aux propriétés en utilisant des méthodes getter et setter qui suivent une convention de nommage simple.
En savoir plus sur Explication d'un Plain Old Java Object (POJO).
1 votes
Découvrez ma réponse à une question similaire : stackoverflow.com/questions/3392580/…. Cela concerne les POCO (.NET version des POJOS), mais les fondements sont les mêmes.
0 votes
@Tamil peux-tu m'expliquer une fois de plus. à propos de pojo
0 votes
@Poovizhirajan.N, désolé pour ce long retard. J'ai d'une manière ou d'une autre manqué cela.