2009-12-29 7 views
28

Le nom me dégoûte vraiment. J'espère que quelqu'un peut l'expliquer d'une manière que je ne vais pas oublier :)Qu'est-ce qu'un "Java Bean"?

+2

http://fr.wikipedia.org/wiki/JavaBean –

+0

La question peut être étendue à - pourquoi "bean" dans le nom JavaBean. Comment ils possèdent des propriétés pour "haricot"? Je ne suis pas sûr que cela augmentera la probabilité de fermeture de la question en disant "non lié à la programmation" – Xinus

+2

Pourquoi Sun affiche-t-il toujours le grain de café pendant qu'il commercialise JavaBeans? Aussi pourquoi "tasse de thé" pour le marketing Java. – Xinus

Répondre

29

Toute classe java sérialisable (implémentant java.io.Serializable) qui suit des conventions spécifiques: un constructeur sans argument, et les propriétés accessibles via get/set/est des accesseurs.

L'idée est de le rendre prévisible, de sorte que les propriétés, etc., puissent être découvertes automatiquement par réflexion - d'une grande aide dans le développement d'outils et de frameworks.

+2

Les haricots ne constituent pas un design OO très élégant car il s'agit essentiellement d'une structure de données sans aucun comportement, et il expose complètement ses entrailles. Voir la conception basée sur le domaine: http://en.wikipedia.org/wiki/Domain-driven_design et http://domaindrivendesign.org/resources/what_is_ddd Cela dit, la plupart des conceptions s'appuient sur des classes semblables à des fèves pour représenter leur modèle. C'est donc la manière standard de facto d'aborder cela. –

+3

Ne pas adhérer à DDD ne veut pas dire que ce n'est pas un "design OO élégant". Ce n'est pas comme si Eric Evans possédait le concept d'objets. Le fait est que, si vous voulez créer une grille de données (un gui commun, sans doute pas élégant) et ne pas en rendre les objets de votre domaine, les propriétés sont aussi élégantes que possible. – fdreger

+0

Rien dans JavaBeans, par définition ou par convention, ne dit qu'il s'agit d'une «structure de données sans aucun comportement». En fait, il y a [une interface standard] (https://docs.oracle.com/javase/7/docs/api/java/beans/AppletInitializer.html) qui aide à instancier des "JavaBeans qui sont aussi des applets", et je pense que nous pouvons tous convenir que les applets ont un comportement! – Ssswift

10

http://en.wikipedia.org/wiki/JavaBean

JavaBeans sont des composants logiciels réutilisables pour Java qui peuvent être manipulés visuellement dans un outil de construction. Pratiquement, ce sont des classes écrites dans le langage de programmation Java conforme à une convention particulière. Ils sont utilisés pour encapsuler de nombreux objets dans un seul objet (le bean), de sorte qu'ils peuvent être transmis comme un seul objet bean au lieu de plusieurs objets individuels. Un JavaBean est un objet Java qui est sérialisable, possède un constructeur nullaire, et permet l'accès aux propriétés en utilisant les méthodes getter et setter.

continue reading »

alt text http://www.javalobby.org/articles/j2me-in-a-nutshell/CoffeeBeanSingle.jpg

+4

Esko, quand la question est aussi simple, je ne vois pas le mal à citer Wikipedia. – Sampson

4

Un grain de Java est une classe qui est serializable, a un constructeur sans argument, et utilise getters et méthodes setter pour ses champs de membres. Il est utilisé dans Java Enterprise Apps pour stocker des données logiques métier.

7

Sun's JavaBean Tutorial says...

JavaBeans ™ architecture est basée sur un modèle de composant qui permet aux développeurs de> créer des unités logicielles appelées composants. Les composants sont des unités logicielles autonomes et réutilisables qui peuvent être assemblées visuellement en composants composites, applets, applications et servlets à l'aide d'outils de création d'applications visuelles. Les composants JavaBean sont connus en tant que beans.

Un ensemble d'API décrit un modèle de composant pour un langage particulier. La spécification de l'API JavaBeans décrit l'élaboration détaillée du noyau pour l'architecture du composant JavaBeans.

Les haricots sont dynamiques en ce sens qu'ils peuvent être modifiés ou personnalisés. Grâce au mode de conception d'un outil de construction, vous pouvez utiliser la fenêtre Propriétés du bean pour personnaliser le bean puis enregistrer (persister) vos beans en utilisant une manipulation visuelle. Vous pouvez sélectionner un bean dans la boîte à outils, le déposer dans un formulaire, modifier son apparence et son comportement, définir son interaction avec d'autres beans et le combiner avec d'autres beans dans une applet, une application ou un nouveau bean.

Si vous avez utilisé le bouton de Swing, vous avez utilisé un composant (JavaBean visible). Vous pouvez utiliser des outils de développement (comme NetbeansIDE) pour modifier les 'propriétés' disponibles du Bean. NetBeans utilise ce qu'on appelle « l'introspection » pour découvrir qui JavaBean propriétés peuvent être modifiés par le codeur/utilisateur (par exemple nom, pour un bouton Swing composant JavaBean texte titre et alignement). Vous pouvez également sauvegarder son état (le développeur IDE/Beans peut utiliser la 'sérialisation' pour cela) permettant une réutilisation ultérieure de vos paramètres favoris.

Les JavaBeans n'ont pas besoin d'être visibles (comme un composant swing).Vous pouvez créer votre propre JavaBean pour crypter le texte dans une zone de texte lorsque quelqu'un clique sur un bouton 'OK' sur un formulaire. Vous ne voyez pas votre JavaBean écrit personnalisé, mais d'autres développeurs pourraient réutiliser votre JavaBean de «chiffrement» dans leur code avec certaines modifications de «propriété» que vous avez autorisées à rendre public (par exemple encryption-type = "blowfish").

Cordialement, SteJav

6

JavaBeans sont composants logiciels réutilisables composants écrits en java.The peuvent être configurés et connectés en utilisant les propriétés clés de tools.Three constructeur qui cause une classe java pour devenir un javabean est

1.Class is serializable 
2.class has a 0 argument constructor 
3.class has getter and setter methods for data members 

Voici une classe simple qui est admissible à devenir un javabean

import java.io.*; 

public class Student implements Serializable { 

    private String name = null; 

    //0 argument constructor 
    public Student() { 
    } 
    //getter method 
    public String getName() { 
     return name; 
    } 
    //settor method 
    public void setName(final String name) { 
     this.name = value; 
    } 

} 
2

un JavaBean est un Java objet qui satisfait ci-dessous les conventions de programmation:

  1. La classe JavaBean doit implémenter l'interface Serializable
  2. La classe JavaBean doit avoir un non-arg constructeur qui devrait être public
  3. Toutes les propriétés JavaBeans doivent avoir Setter public et getter pour définir et obtenir toutes les propriétés du haricot.
  4. Toutes les variables d'instance JavaBean doivent être privées et accessibles uniquement par Getter et setter.
Questions connexes