Exemple JavaBean calculer le NombreHeureDeTravail
-
Objectifs
- Etre capable de travailler avec les Enterprise Java Beans
-
Présentation
- Considérons un exemple de JavaBean appelé "NombreHeureDeTravail" qui a pour métier de calculer le nombre d’heure de travail pour la construction d’une maison (les gros ouvres) quel que soit la surface et le modèle.
-
Définir les propriétés
- Pour définir les propriétés du bean NombreHeureDeTravail, prenons pour hypothèses que les gros ouvres de construction sont en nombre de dix étapes.
- Grâce à ces hypothèses, nous sommes en mesure d’identifier les propriétés utiles à notre composant. En effet, pour calculer le nombre d’heure de travail, nous devons connaître le nombre d’heure de chaque étape de construction soit:
- L’étude de sol
- Le terrassement
- L’excavation
- Les fondations
- L’assainissement
- Le soubassement
- Le Plancher
- La charpente
- La toiture
- Les menuiseries extérieures
- Nous devons également être en mesure de stocker le nombre total d’heure de travail, résultat final calculé par le compostant.
- Chaque élément ainsi déterminé correspond à une propriété du JavaBean NombreHeureDeTravail.
- Les premières déclarations vont nous permettre d’enregistrer les nombres d’heures de travail de chaque étape.
- La dernière déclaration nous permet de stocker le nombre d’heure total calculé par le composant.
- Les données sont déclarées en mode
private
. De cette façon, nous nous assurons que les valeurs prises par ces propriétés tout au long de l’application ne seront modifiées que par le composant lui-même. En effet, les données privées ne peuvent être modifiées ou consultées que par des méthodes de la classe dans laquelle elles sont déclarées. - Ainsi, grâce à l’accès aux données par l’intermédiaire de méthodes appropriées, le composant permet non seulement la consultation de la valeur de ses propriétés,mais aussi l’autorisation ou non, suivant ces propres critères, de leur modification.
- À l’inverse du mode
private
, le modepublic
permet l’accès aux propriétés depuis tout autre composant de l’application ou d’une autre application. - Pour des raisons de sécurité, il n’est pas conseillé de déclarer les propriétés d’un JavaBean en mode public.
-
Méthode d’accès en écriture
- Les propriétés
nombreHeureTerrassement , nombreHeureExcavation, nombreHeureFondations, nombreHeureAssainissement, nombreHeureSoubassement, nombreHeurePlancher, nombreHeureCharpente, nombreHeureToiture, nombreHeureMenuiseries et nombreHeureDeTravail
ont des valeurs qui changent en fonction du surface de la maison dont on souhaite connaitre le nombre d’heures de travail - Il convient donc d’écrire les méthodes qui vont nous permettre de modifier ces valeurs. Ainsi, par exemple, les méthodes permettant de stocker le nombre d’heure de travail de terrassement,excavation, fondations…. s’écrivent de la façon suivante :
- Chaque méthode prend en paramètre une variable du type int et affecte sa valeur à la propriété nombreHeure… La valeur passée en paramètre est celle transmise depuis le JSP. comme nous le verrons à la section "Appeler un bean depuis un JSP ".
Le nom des méthodes d’accès aux données s’écrit selon une règle spécifique. Les méthodes d’accès en écriture doivent commencer par set, suivi immédiatement du nom de la propriété concernée. La première lettre de la propriété devient une majuscule. C’est en nommant ainsi les méthodes d’accès que les propriétés seront accessibles depuis un programme JSP.
-
Méthodes d’accès en lecture
- Le nombre d’heure total pour la construction de la maison est le résultat final que doit fournir le composant. Cette valeur est une donnée qui est nécessairement transmise à l’extérieur du composant
- Pour cela, il convient d’écrire une méthode d’accès en lecture pour chaque propriété , comme suit :
- Grâce au
return
, la valeur contenue dans les propriétés est transmise au programme qui fait appel aux méthodes get..( ).
Les méthodes d’accès en lecture débutent par get, suivi immédiatement du nom de la pro-priété concernée. La première lettre de la propriété devient une majuscule.
-
Méthodes invisibles (métier)
- Les méthodes d’accès en lecture et en écriture permettent l’échange de valeurs entre les différents composants de l’application. Cependant, chaque module est construit dans l’objectif d’accomplir un traitement.
- Ce traitement est réalisé non pas par les méthodes d’accès mais par des méthodes internes au module. Ces fonctions sont appelées méthodes métier ou encore méthodes invisibles.
- Ces méthodes effectuent un travail interne au composant, lesquelles n’ont pas besoin d’être utilisées par les autres modules de l’application.
- Examinons plus précisément ce type de méthode à travers notre exemple. L’objectif de notre composant est de calculer le nombre d’heure total pour la construction d’une maison.
- La méthode qui réalise ce calcul est naturellement une méthode métier. La méthode calculTotalHeur( ) effectue ce traitement, nous l’étudions ci-après.
- Une autre méthode métier consiste à vérifier la validité des données enregistrées dans les propriétés du JavaBean.
- En programmation objet, tout composant se doit de contrôler par lui-même si les valeurs qui lui sont transmises sont cohérentes ou non. Examinons plus précisément comment réaliser cette vérification.
- La méthode verifNombreHeure() est écrite de façon à vérifier si les valeurs stockées à l’intérieur des propriétés sont toutes positives.
- En effet, il est raisonnable de penser que le coût d’un composant ne peut être négatif. Si une des quatre propriétés est négative, la méthode retourne un booléen égal à
false
, sinon elle retournetrue
. - Ensuite, la méthode métier calculNombreHeureTotal () fait appel à la méthode verifNombreHeure() afin de ne calculer le coût total que si les données sont exactes.
- Les deux méthodes verifNombreHeure() et
alculNombreHeureTotal ()
sont déclarées en modeprivate
. Ces méthodes réalisent des traitements internes au composant. Elles ne sont—et ne doivent — jamais être appelées par un composant externe. - La déclaration en mode
private
nous assure de leur inaccessibilité depuis l’extérieur de la classe NombreHeureTotal. -
Règles à respecter
- Pour écrire un JavaBean, nous devons obligatoirement suivre certaines règles.
- La définition des noms de méthodes d’accès en est un bon exemple. SUN, qui est à l’initiative du langage Java, propose d’aller plus loin dans la formalisation des JavaBeans appelés Entreprise JavaBeans (EJB).
- L’architecture des Entreprise JavaBeans est définie comme le standard des applications orientées objet codées en Java.
- L’objectif de ces composants plus évolués est de normaliser autant le code dont ils sont composés que la façon dont ils sont codés.
-
Le code source complet du JavaBean CoutDeRevient
Exemple JavaBean calculer le NombreHeureDeTravail
En Java, nous traduisons ces définitions en déclarant des variables à l’intérieur de NombreHeureDeTravail de la façon suivante :
//Définition des propriétés
private int nombreHeureTerrassement ; private int nombreHeureExcavation; private int nombreHeureFondations; private int nombreHeureAssainissement; private int nombreHeureSoubassement; private int nombreHeurePlancher; private int nombreHeureCharpente; private int nombreHeureToiture; private int nombreHeureMenuiseries; private int totalHeureDeTravail;
Pour finir, nous avons à modifier la méthode d’accès getCoutRevient ( ) comme suit :