0% ont trouvé ce document utile (0 vote)
22 vues2 pages

Atelier N3

Transféré par

Jenhani Chaima
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
22 vues2 pages

Atelier N3

Transféré par

Jenhani Chaima
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TEK-UP ING-4

Spring boot
Atelier 3
Objectifs
 Créez des beans avec l’injection de dépendances.
 Utilisez le conteneur Spring IoC.

Introduction:
Dans le domaine de développement des systèmes informatiques, il y a trois aspects d’une mauvaise
conception :

 Rigidité : difficile à changer en raison de l'impact sur toutes les autres parties du système.
 Fragilité : les changements brisent d'autres parties du système.
 Immobilité : la réutilisation ailleurs est difficile en raison de l'enchevêtrement entre les
composants du système
L’inversion de contrôle résout ces trois problèmes en utilisant une approche simple : « Dépendre des
abstractions, pas des implémentations ».
Dans le monde de Java, cela signifie s'appuyer sur des interfaces et non sur des implémentations.

Travail à faire :
Soit le code des POJO’s suivants :
public class MyRunner{

public static void main(String[] args) {


new ComputerProcessor()
.addComputer(new Doubler())
.addComputer(new Squarer())
.computeAll(8);
}
}

public class ComputerProcessor {

private List <Object> computers = new ArrayList <Object> ();


public ComputerProcessor addComputer(Object o) {
[Link](o);
return [Link];
}

public void computeAll(long value) {


for (Object o : computers) {
long computedValue = -1;

if (o instanceof Doubler) {
computedValue = ((Doubler) o).computeDouble(value);
} else if (o instanceof Squarer) {
computedValue = ((Squarer) o).computeSquare(value);
}

©MAD Page 1 sur 2


TEK-UP ING-4

String name = [Link]().getSimpleName();


[Link]("Computer: " + name + ", value: " + value
+ " computed value: " + computedValue);
}
}
}

public class Doubler {

public long computeDouble(long value) {


return value*2;
}
}

public class Squarer {

public long computeSquare(long value) {


return value*value;
}
}

Exemple de résultat :
1- Déterminez le rôle de chaque classe.
2- Proposez une application Spring Boot pour ce code.
NB : les classes MyRunner et ComputerProcessor sont des services et Doubler et
Squarer sont des classes modèles
3- Ajoutez une nouvelle classe Cuber, disposant d’une méthode de calcul de cube d’une valeur
donnée.

Exemple de résultat :

4- Quelles classes vous avez modifié ? Critiquer la conception de cette application ?


5- Proposer une nouvelle conception et implémentation pour cette application en se basant
sur le principe de l’inversion de contrôle.

Bon Travail

©MAD Page 2 sur 2

Vous aimerez peut-être aussi