Ensemble de 8 TP pour mettre en pratique les notions abordées cette semaine. On pourra aussi envisager de modifier et améliorer une partie des projets et du code des 2 premières semaines de formation.
Comprendre la différence entre :
if
Vous développez une petite application de gestion de commandes pour une pizzeria.
L’application doit pouvoir créer plusieurs types de pizzas :
MARGHERITA
REINE
4_FROMAGES
Chaque pizza possède un nom et un prix.
Pizza
nom
prix
afficher()
PizzaMargherita
PizzaReine
PizzaQuatreFromages
PizzaService
public Pizza creerUnePizzaSelonSonType(String type)
Main
PizzaFactory
public static Pizza creerPizza(String type)
equals()
IllegalArgumentException
VEGETARIENNE
Comprendre comment garantir qu’une classe ne possède qu’une seule instance.
Vous développez une application qui doit écrire des messages dans un journal unique.
Il ne doit exister qu’un seul logger dans toute l’application, afin que tous les messages passent par le même objet.
Logger
public void log(String message)
private
public static Logger getInstance()
getInstance()
new Logger()
logger1 == logger2
true
Comprendre comment séparer :
Vous développez une mini-application de gestion de bibliothèque.
L’application doit manipuler des livres avec :
Pour commencer, les données seront stockées en mémoire dans une liste.
Livre
id
titre
auteur
LivreDAO
void save(Livre livre); Livre findById(int id); List<Livre> findAll(); boolean deleteById(int id);
LivreDAOMemory
ArrayList
BibliothequeService
LivreDAOJdbc
Comprendre comment construire proprement un objet comportant plusieurs options.
Vous développez une application de configuration de PC.
Un ordinateur peut avoir plusieurs caractéristiques :
Toutes les options ne sont pas obligatoires au départ.
Ordinateur
processeur
ram
stockage
carteGraphique
systeme
OrdinateurBuilder
this
build()
afficherConfiguration()
Comprendre comment encapsuler une action dans un objet.
Vous développez une télécommande pour une maison connectée.
La télécommande doit pouvoir exécuter différentes actions :
Command
void execute();
Lumiere
Volet
AllumerLumiereCommand
EteindreLumiereCommand
OuvrirVoletCommand
FermerVoletCommand
Telecommande
execute()
BaisserVolet
Ajouter JUnit dans l’un de vos anciens projets (tp) des semaines passées et ajoutez-y des tests unitaires.
Écrire des tests unitaires sur une petite classe métier.
Vous développez un panier d’achat simplifié.
Le panier doit permettre :
Panier
void ajouterArticle(String article); int getNombreArticles(); void vider(); boolean estVide();
PanierTest
vider()
@Test
assertEquals
assertTrue
assertFalse
Tester plusieurs cas simples de calcul.
Vous développez un utilitaire de conversion de températures.
TemperatureConverter
double celsiusVersFahrenheit(double celsius); double fahrenheitVersCelsius(double fahrenheit);
TemperatureConverterTest
0°C -> 32°F
100°C -> 212°F
32°F -> 0°C
212°F -> 100°C
assertEquals(valeurAttendue, valeurObtenue, delta)
0.001
Tester des règles de validation métier.
Vous développez un validateur de mot de passe.
Un mot de passe sera considéré comme valide s’il :
PasswordValidator
boolean isValid(String password)
PasswordValidatorTest
Ces TP permettent de mettre en pratique ce que l’on voit cette semaine en Java :
main()
Lien vers le Projet Chocolaterie - peut-être pour la semaine avec Spring Boot…